Objective-C语言概述:
 
1.  Objective-C语言简称OC,是扩充C语言的面向对象编程语言。
2. 
3.  OC时间进度:
 1980年初发明了OC语言
 1988年NeXT公司使用OC语言进行开发
 1996年OC语言成为苹果公司主要编程语言4.  OC语言的特点:
 OC语言是C语言的超集,允许在OC代码中编写C语言代码,编译器能兼容C语言代码
 具备完善的面向对象特性
 包含一个运行时系统
 包含丰富的类库 
 
 
 
 
 
 
 面向对象编程: 

 
1.  面向对象基本介绍
 面向对象编程:OOP(Object Oriented Programming)
 面向对象的语言:Java、C++、C#
 概念:对象、类、封装、继承、组合等2.  面向对象与面向过程:
 面向过程:分析解决问题的步骤,实现函数,依次调用
 面向对象:分析问题组成的对象,协调对象间的联系和通信,从而解决问题
 对象定义了解决问题中的步骤的行为,不可以完成一个步骤
 面向对象是以对象为中心,面向过程是以过程为中心的 
  
 
 
 
 
 
 类和对象: 

 
1.  基本介绍:
 类和对象是面向对象的核心
 定义类,创建对象,使用对象2.  类有共同的特征(比如导演类,有姓名、性别、国籍)和共同的行为(拍电影、客串、潜规则。。。)。类就是相同特征和行为的事物的抽象。
3.  对象就是类中具体的东西,对象是类的实例,类是对象的类型。
4.  在OC中如何定义类?
 面向对象编程中使用对象完成程序
 开发中:先定义类,再创建对象,然后使用
 定义类分为两个部分:接口部分(.h)和实现部分(.m)。
 a. 接口部分:对外声明类的特征和行为
 b. 实现部分:对内实现行为5.  接口部分:
 接口部分的标志:@interface ... @end
 作用:声明实例变量和方法,即特征和行为
 包含内容:类名、父类名、实例变量、方法6.  实现部分:
 实现部分的标志:@implementation ... @end
 作用:实现接口部分声明的方法,即实现类的行为
 包含内容:类名、实现的方法7.  类和文件的概念?
 类:@interface ... @end    @implementation ... @end 
 文件:(.h)文件称为接口文件或头文件。(.m)文件称为实现文件。
 文件和类本质是没有关系的,只是为了方便管理、实现封装特性。8.  如何创建对象?
 分为两步:分配内存空间和初始化
 分配内存空间:调用父类的alloc方法分配内存空间,根据类中声明的实例变量为对象分配内存,返回首地址,将所有实例变量置为默认值0.
 初始化:对创建的对象进行实例变量的的初始化设置。
 代码:// 分开写 Person *person = [Person alloc];
init];
//
Person *person2 = [[Person alloc] init];
 +(id)alloc; // +号表示方法属于类,只能类执行。id表示任意类型的对象,即创建好的对象。
 -(id)init;  // -号表示方法属于对象,只能对象执行。id表示初始化完成的对象。9.  使用对象:
 指针存储对象的首地址,代指对象。OC中使用指针代指对象进行操作。
 Person *person = [Person alloc];先执行等号右侧代码。
 [Person alloc]; // 返回值是对象的首地址,即对象。
 person是跟对对象同类型的指针变量,存储对象首地址,代指对象。 
  
 
 
 
 
 
 实例变量操作: 

 
1. 基本介绍:
 实例变量在做初始化时只做少量设置,后期需要操作。
 实例变量有区分可见度,分为三种。(@public / @protected / @private)
 @public: 实例变量访问修饰符。 
  
 
 

   /// Person.h 声明文件(头文件) 
 
 
 
是声明,必须与@end配合使用
表示类名
// ':'表示继承关系,':'后面的类名表示的是父类名
@interface Person : NSObject
 {
   // 声明实例变量
  
   // OC中的类型,声明变量的时候,需要加上'*'号
   // C语言基本数据类型不需要
   // 实例变量的名称全部以'_'开头(注意)
   NSString *_name;            // 姓名
   NSString *_hobby;           // 爱好
   NSString *_address;         // 地址
   int _age;                   // 年龄
   float _score;               // 分数
 }
 
 
//
//
// 1. '-'号表示的是对象方法(实例方法),由对象来调用
// 2. ‘+’号表示的类方法,由类名类调用
//
吃饭
void)eat;
 
打招呼
void)sayHi;
 
// @end必须要写,不能丢
 @end
 
 
 
  
 
 
 
  
 
 
 
  
 
 
/// Person.m 实现文件 
 
 
实现文件中的关键字
// Person表示的是实现哪个类中的方法
Person
 
//
//
id)init
 {
   // OC中字符串可以直接赋值,需要加上 ‘@’
   _address = @"北京市海淀区金五星商厦5层蓝鸥科技";
   _name = @"张赛赛";
   
   // 返回自己
   return self;
 }
 
吃饭
void)eat
 {
   // 字符串需要添加'@'符
   // printf("人用筷子吃饭 %s", "好");
   NSLog(@"人用筷子吃饭 %@", @"好"); // 打印效果同上
 }
 
打招呼
void)sayHi
 {
   NSLog(@"hi,大家好,我是%@,噢耶", _name);
 }
 
,不能丢
 @end
 
 
 
  
 
 
 
  
 
 
 
  
 
 
//
#import
int main(int argc, const char
 {
   @autoreleasepool {
       
       // 创建一个Person对象
       // 1. 给Person发送alloc消息,申请内存
       Person *person1 = [Person alloc];
       // 2. 初始化实例变量,给对象发送init消息
       person1 = [person1 init];
       
       // 通过 ‘->’
       NSLog(@"地址:%@", person1->_address);
       person1->_address = @"蓝鸥科技";
       NSLog(@"地址:%@", person1->_address);
       
       // 通常创建对象,这样写。把发送alloc消息和init消息放在一起,消息嵌套机制
       Person *person2 = [[Person alloc] init];
       
       // 吃饭,给对象发送sayHi消息
       [person1 sayHi];
       [person2 sayHi];
       
 
  
   return

 }