黑马程序员技术交流社区
标题:
匿名对象,封装,关系,self,继承
[打印本页]
作者:
杨光0618
时间:
2016-8-22 19:49
标题:
匿名对象,封装,关系,self,继承
Mark 01 匿名对象
1.匿名对象
创建一个对象,不使用指针存储这个对象的地址
调用new方法去创建对象,但是没有使用指针来接收这个方法的返回值,这个对象就叫做匿名对象
2.如何使用匿名对象
[PHHuman new] ->_name = @“Mike”;
3,匿名对象的特点
因为匿名对象没有名字,所以这个对象只能使用一次,创建出来时即使用
Mark 02 封装
1.封装
将数据的状态和行为封装在一个类中,类中有很多复杂的实现,对于外部而言无需关心,我们只需要知道这个类是什么作用,怎么用.
2.使用setter方法来对属性赋值做逻辑验证
setter方法是对象方法
一定没有返回值
名字必须以set开头,再跟上属性的名字,去掉下划线,首字母大写
一定有参数,参数类型和属性的类型一致
参数名字和属性名字保持一致,去掉下划线
在方法的视线中,判断参数的值是否符合逻辑,如何符合则赋值,若不适合,可以选择给一个默认值
3.使用getter方法获取对象的属性值
getter方法是个对象方法
一定有返回值,返回值类型和属性的类型一致
名字就是属性的名字去掉下划线
一定没有参数
直接rerurn当前对象属性的值
Mark 03 关系
1.组合关系
对象A有其他若干个对象组合而成,这些对象是对象A的一个部分
2.依赖关系
A类中有一个方法需要对象B做参数,此时对象A和对象B就是依赖关系,A依赖于B
3.关联关系
A作为B的属性,但B不是由A组合而成
Mark 04 士兵突击
Mark 05 Static关键字
1.在C语言中
修饰局部变量,将局部变量变为静态变量
修饰全局变量,将全局变量静态变量
修饰函数
2.在OC中
不能修饰类的属性
不能修饰方法
可以修饰局部变量,效果和在C中一样
Mark 06 Self关键字
1.self关键字可以用在对象方法和类方法中
self是一个指针
在对象方法中,self指向当前对象
在类方法中,self指向当前类
在对象方法中,可以使用self关键字来显示的访问当前对象的成员
可以使用self关键字显式的访问当前对象的属性
可以使用self关键字显式的访问当前对象的其它的对象方法
在对象方法中使用self的场景
必用场景
如果方法中存在和属性名相同的局部变量,这个时候直接写这个变量名的访问的是这个局部变量,如果你就是要访问属性,就必须使用self
在对象方法中如果要调用当前对象的其它的对象方法,就必须使用self. [self 其它方法名];否则不行,如果你创建对象,调用这个对象的方法,那就不是当前对象的方法了
选用场景
在方法中如果没有和属性名相同的局部变量,那么要访问这个属性,那么可以使用self,可以直接访问
self在类方法中,self也是一个指针,这个指针指向当前类在代码段中的地址
如何拿到类在代码段中的地址
通过查看对象中的isa指针
在类方法中查看self的值
调用对象的方法class,也可以得到这个对象所属的类的地址
调用类方法class,也可以得到这个类的地址
在类方法中,self代表当前这个类——>self和当前类完全等价
在类方法中,可以使用self来代替当前类(声明变量除外)
Mark 07 继承的简单使用
1.继承的目的:子类想要拥有父类中的成员,但不想自己定义,就可以从父类继承
2.继承的步骤
@interface 类名 : 父类
@end
@implementation 类名
@end
3.专业术语
@interface Person : Human
Person类从Human类继承,Person类是Human类的子类,Human类是Person类的父类
Person类从Human类派生,Person类是Human类的派生类,Human类是Person类的基类
4.继承是类的继承而不是对象的继承
5.不要为了继承而继承
只有满足is a关系的两个类才可以继承
6.只要成员不是所有子类都拥有的属性,就不应该定义在父类中
7.OC继承的特点
单根性 ———有且只有一个父类
传递性 ———多级继承
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2