一、类、声明、属性
1 .h文件是声明类的属性和方法的
2 .m文件是实现类的方法的
3 @interface声明类的关键字
4 People表示类名称,每个单词的首字母大写
5 :表示继承关系
6 NSObject表示父类
7 @end表示声明结束
8 文件名称和类的名称没有关系,一个文件中可以声明多个类,但是每个类之间是并列关系
9 @implementation表示实现类,后面跟的就是类名称,每个类必须要实现
10 @end表示实现结束
11 属性的声明是在NSObject后加{},一般写属性,名称使用_开头
12 方法的声明是在{}外
13 声明方法的时候,+表示类方法(只能由类来调用),-表示实例方法(只能由对象调用)
14 +方法中不能使用属性,如果一个方法没有使用属性,并且使用频率较高,为了方便期间可以写+
15 如果方法有多个参数,为了方便阅读,可以给每个参数都起一个别名(一般建议都要写别名)
16 如果一个方法有返回值,那么在实现这个方法的时候,必须要写return,return后追加对应返回值类型的值,如果一个方法没有返回值,那么在实现的时候return可写可不写,如果写return就表示跳出方法,格式为return;
17 调用方法的格式为[类/对象 方法名称]
18 如果一个方法有返回值,当调用这个方法结束以后,我们可以利用这个结果做对应返回值类型的事情
19 创建一个类的对象的格式是[[类名称 alloc] init],alloc表示通过类去创建对象,调用init表示初始化对象的属性
20 在oc中所有类类型的变量需要使用 *
21 类调用new方法相当于[[类名称 alloc] init]
22 一个方法如果只在.m中实现,没有在.h中声明,那么这个方法就是私有方法,只有在.m中能看到,在外部调用的时候系统不会有提示,但是这个方法能够运行
23 self在实例方法中表示当前类对象,在类方法中表示当前类,一个类可以有无数的对象,哪个对象调用的实例方法,在这个方法中self就表示这个对象
24 属性只能在实例方法中使用,使用的格式是直接使用,哪个对象调用的实例方法,在这个方法中使用的属性就是哪个对象的
25 属性的使用范围在本类的实例方法
二、set、get
1 @property 代表声明set和get方法,后面跟的名字其实方法的名字
2 @synthesize 代表实现set和get方法(height=_height,代表setHeight和height方法和_height属性是对应关系)
3 现在如果我们写了@property int age
(1) 声明了带有_age属性
(2) 声明了setAge和age方法
(3) 实现了setAge和age方法
4 在本类的实例方法中使用属性(a)_age(b)self.age,不在本类中使用属性 对象.属性
5 打点调用赋值的时候实际上调用的是set方法,打点调用不赋值的时候实际上调用的是get方法