1.类型可见度
@public
1⃣公开的,公共的,可以在类的内部和外部进行访问.
2⃣在类的内部直接使用类的变量名.
3⃣外部访问:对象->实例变量名
注意事项:@public用的比较少,破坏了 OC 的封装性.
封装:封装的目的:为了实现高内聚,低耦合.
内聚:模块内的关系程度.
为什么要进行封装?目的是将数据隐藏起来,只能用此类中的 set 和 get方法进行访问和修改数据.不能被外界任意存储数据是面向对象设计本质,降低数据的误用性.
@protected 受保护的(系统默认)不允许类的外部进行访问实例变量,只可以在本类和子类中进行访问.
1⃣在类的内部:实例变量名直接访问.
2⃣类的外部:使用方法进行访问.(set 和 get 方法)
@private 只能在本类中访问,私有的,外部不可见的,只能本类中可见,子类中也不可见
1⃣类内部访问:使用实例变量名进行访问.
2⃣外部访问:通过 set 和 get 方法进行实现(即设计器和访问器)
[g setBust:@“A”];
2.方法(函数) 方法实现了实例变量初始化和实例变量的赋值结合到一起(自定义初始化方法)
OC中方法大体上分为:类方法和对象方法.
类方法:(+)开头,由类名来调用.
对象方法:(-)开头,由对象来调用.
多个参数的方法命名格式:`
(+/-)(方法返回值类型)方法名1:(参数类型)参数名1 方法名2:(参数类型)参数名2 方法名3:(参数类型)参数名3......
多个参数的时候,每个参数定义完成记得加空格
方法名使用小驼峰命名法.
提取方法名的步骤:
1⃣-/+去掉
2⃣方法返回值
3⃣去掉参数类型和参数名
4⃣方法名:(sayHello:),冒号也是方法名的一部分,有冒号,后面一定有参数.
调用对象方法 使用创建的对象;调用类方法, 使用类名
1⃣对象方法(-)开头
2⃣在对象方法中能够使用实例变量
3⃣对象方法只能有对象调用 [对象名 对象方法]
1⃣类方法(+)开头
2⃣类方法中不能使用实例变量(因为类方法由类来调用,并没有创建存储空间来存储我们的实例变量)
3⃣类方法只能使用类调用[类名 类方法名]
4⃣类方法的好处:不依赖于我们创建的对象,执行效率高,如果能用类方法解决的问题,尽量使用类方法解决
5⃣场合:方法中不需要实例变量的时候,使用类方法更简洁.
3.#include #import #class 的区别
#include 和#import 的作用都是引入头文件,但是# import 避免重复引入头文件
#import 和@class,#import 是把整个文件都引用过来,而@ class 告诉编译器后面跟的字符串就是个类名,并未导入类的接口内容.
@class 可以有效的避免嵌套循环的导入.
一般情况下,@class 和# import 配套使用,@ class 在. h文件中,而# import 在. m文件中