OC之02面向对象03三大特性01封装、类方法
封装
简介:在以前,我们都是在我们的成员变量前面写上@public 这样做有时候是不对的,比如说,当我们设好一个成员变量我们只希望别人只能够阅读而不能够更改我们的成员变量的值的时候就用到我们的封装了
封装01--set方法
作用:提供一个方法给外界,以方便设置我们成员变量值,可以在方法里面对参数进行相应的过滤
命名规范:1、方法名必须以set开头 然后后面跟上成员变量名。2、成员变量名的首字母要大些 3、返回值一定是void 4、一定要接收一个参数,而且参数类型必须和成员变量类型一致 5、形参的名称不能与成员变量名一样 6、成员变量尽量不要要@public
假如这个是我们的成员变量set方法的声明与实现:
这是set方法的声明 这个是set方法的实现封装02--get方法
作用:提供一个方法让别人可以拿到我们的成员变量的值
命名规范:1、必须有返回值,返回值的类型与成员变量相同 2、方法名与成员变量名一致 3、不需要接收任何参数
关于get方法的声明与实现:
这是get方法的声明 这个是get方法的实现代码规范:1、我们都是将我们的set方法与get方法的声明写在一起也就是我们的@interface 与@end之间
2、而我们的set方法与get方法的实现都是写在我们的@implementation与@end之间的
注意:
以前我们为了让初学者学的简单点,我们将成员变量名写的与其他名无差异,现在我们就要改过来
我们的成员变量名一定要以下划线_开头(这样是为了让别人一看就知道我们这是成员变量)这是命名规范必须这样写 (与局部变量、get方法区别开来)
还有一个注意:以后我们开发中会有很多这样的错误内容:
类方法
类方法01 使用
类方法都是一加号开头的,不用创建对象我们就可以执行类方法 ,类方法在某些情况下可以提高我们的程序性能
与对象方法的区别
类方法与对象方法不能混用
如果混用就会出现下面的问题
这是错误的内容代码书写格式:
注意:在我们OC对象方法与类方法可以同名
总结:
工具类一般我们都会使用类方法
工具类:基本没有任何的成员变量,里面的方法基本上都是类方法
说一下,下面会引发死循环的代码:
self--访问成员变量
注意:self:是个指针
我们的代码是属于就近原则的当我们的代码如下图编写聚会根据就近原则将我们的成员变量改成20
所以为了保护我们的成员变量值不被改变,我们就会做下面的手段以防止我们的成员变量值不被改变
self--调用方法
当我们需要一个对象的两个方法的其中一个方法去调用另一个的方法就需要用到我们的self 其具体的格式如下:
self的用途:
概念:指向当前对象 当然我们可以利用“self—>成员变量名”访问当前对象的内部的成员变量
使用注意:
注意不要引发死循环、无论在那个相同的对象还是类方法
无论是类方法还是对象方法,两者不可交叉调换
当然如果是函数两者均可调用,但是要注意格式
注意:类方法是没有成员变量,而对象是有成员变量的