OC2-类的封装性 自定义初始化方法
/*
1.访问权限设置,类的封装性, oc的类中对实例变量提供了三种访问权限,实例变量就是成员变量,
(1)@public共有权限,任何类都可以访问声明的实例变量,
(2)@private 私有权限,只有自己可以访问这个实例变量。
(3)@protected,受保护权限,只有自己和自己子类可以访问的。
默认是protected
所谓的封装 ,是访问权限和访问方法结合实现的。
2.方法:类方法,实例方法,初始化方法。
(1)方法的组成:[类型修饰符][方法名]1)‘-’是类型修饰符,修饰的是方法的类型,表示是实例方法 2)‘+’ 是类方法。
(2) 1)实例方法必须通过创建的对象才能调用,2)类方法 必须且只能是类名调用。[person alloc] alloc 是类方法。
3.方法的类型;OC 中根据参数和返回值,分四种,OC的方法中,参数是用(:)来标识的,(:)就是参数标识符,
(:)后面紧跟一对括号,里面写的是参数的类型,括号后是参数的名字。
4.多参数: oc里面,多参数的方法名是不一样的,(类型修饰符) 方法名: (数据类型1)参数名1 and:(数据类型2)参数名2;
(1)数据类型用括号套起来了,(2)‘:’是参数的标识符 而不是‘,’(3)多个参数被方法名隔开了。(4)oc允许,在参数前面,活着and后面,加一段名字,达到更好的提示作用。(5)有一个‘:’就是一个参数,‘:’前的单词,可以随便修改
5.方法名:删除类型表示符,返回值类型,参数类型,参数名,空格,剩下的就是方法名,即字母+‘:’;
一个类里面,方法名不能重名,
6.类方法:(1)是以‘+’开头的(2)不能使用实例变量,
7.设置age这个属性的时候,,命名方法是set+实例变量名,实例变量名首字母大写,取消下划线。
得到,就是那个实例变量的名字,且忽略下划线。
8.封装:封装性,将类和对象的实例变量,封闭起来,不允许外界访问,当需要修改读取时,使用setget 函数,进行相应操作。
9:自定义初始化方法:oc给我们提供了自定义初始化的方法的权限,只要在满足特定的要求下即可,
(1)实例方法
(2)instanceType
(3) 名字必须是initWith开头。 在头文件里声明
(4)instanceType专用初始化方法:
10.id 和instanceType区别。
(1)都是可以代表任意对象类型。
(2)id可以作为数据类型,声明变量,instanceType不可以
(3)作为返回值时,作为初始化函数,id返回的是nsobject类型的对象,instancetype是自动识别当前对象类型,替换返回。
11.oc的消息发送机制。 函数调用即发送消息,从子类找,找不到找父类,直到寻找到,或者报错。
12.类的综合使用,就是将另外一个类当作一种数据类型使用。
对象类型的实例变量,可以通过指针来进行赋值。
13.import 和include [ @class Man;] 标记存在Man 这个类,这样在头文件就不会抱错,把引入文件的操作,放在.m文件里。
*/