OC2-类的封装性 自定义初始化方法

时间:2022-10-16 00:27:36

/*

 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文件里。

 */