1.成员变量和属性
成员变量:在类的内部,具有私有性,在main函数中不能访问
属性:在接口中声明的成员变量,可以在main函数中访问
2.类的声明与实现
声明:在.h文件中的接口中进行属性,类方法,对象方法的声明
实现:在.m文件中进行setter,getter方法,类方法,对象方法的实现
私有方法:没有声明直接实现的方法就是私有方法,私有方法只能在类内部访问
3.前缀
可以加强区分度,要注意保持良好的前缀风格。
4.封装,继承,多态
封装:面向过程是 狗 吃 屎,面向对象 吃(狗,屎)。面向对象就是把吃这个动作封装成一个方法,可以让其他的对象使用,也可以吃其他的东西。这样就可以让这个方法多次重复利用,大大简化了编程的过程。面向对象思想是在大的框架上对方法进行封装。而在局部的方法实现上还是使用的面向过程的思想。
继承:子类继承父类,可以继承父类中的属性和方法。继承可以减少代码重复,提高运行效率,可以提高代码的可读性和可维护性,可以发挥方法调度作用。oc中不支持多重继承,但是可以通过类别,协议完成类似的功能。
superClass 超类,subClass 子类,override 方法重写
多态:允许方法重名(子类重写父类的方法),参数或返回值可以是父类型的传入和返回(不同对象对同一消息的不同响应)。方法重写的做法(要理解好再重写的时候调用[super 该方法名]的重要作用)。
5.发消息和调用方法
发消息是oc的工作机制,根据发送消息的名字找到对应的方法,调用方法是发消息的最后一步。
6.代码规范
等号两边加空格
类方法,对象方法开头的 )- + 后面加空格
一块代码一个段落,让代码整洁简明
7.类方法
实例化方法(工厂方法):在赋值的同时建造新的实例化对象(格式: 类名:With属性名:and属性名:)
类方法:由他所在的类直接执行
8.super和self关键字
super 明文调用父类同名方法的逻辑,调用者还是对象本身
self 谁调用self所在的方法,self就表示谁,是一个指向对象首地址的指针。
self 在-方法中表示当前的对象,在+方法中表示本类。
9.聚合和组合
再设计类的时候要分清组合与聚合。一个人和他的手是组合的关系,雁群与大雁之间是聚合的关系。好的复合关系会给程序员在编码的时候提供正确的思路。
复合关系表示的是has a
继承关系表示的是is a
区分复合和继承是初学者在设计类的时候一个重要的原则,这个原则也是高内聚低耦合思想指导下的正确做法。
[email protected]和#import
在.h文件中导入类名使用@class可以简化文件之间的依赖关系,降低耦合。
在.h文件中导入类名容易使文件之间的依赖关系混乱
@class xxx :告诉编译器xxx是一个类,至于类有哪些方法和属性,此处不去检查