一、实例变量可见度
-
public(公有的)
实例变量可以被任意操作,实际情况中很少使用Public,有以下两个原因:
1)使用@public关键字,暴露了类内部的细节
2)不符合面向对象语言的三大特性之一 - 封装 -
protected(受保护的,默认的)
实例变量只能在该类和其子类中操作
-
private(私有的)
实例对象只能在该类内访问
-
思考
如果在其他类中使用@protected修饰的实例变量
二、方法
-
类方法
只能使用类来调用,在返回值类型的前面加+来标识
注:类方法中不能使用实例变量
-
实例方法(对象方法)
只能使用对象调用
-
方法声明
格式
- (返回类型)参数形容词1:(参数类型)参数名1 参数形容词2:(参数类型)参数名2
方法名呢?
参数形容词拼接起来就是该方法的方法名
-
方法调用
[对象名或者类名 方法名];
比如:
[student sayHi];正确表述:
给student对象发送sayHi消息1)student接收到消息,及方法sayHi
- student找到sayHi方法,并执行
定义AodiCar类和MobilePhone类,需求:
1)实例变量使用默认可见度
2)添加方法实现对实例变量的操作
3)任意添加方法并使用
三、自定义初始化方法
1. -(id)init 这个初始化方法只能给实例变量设置默认值,不灵活,我们可以通过自定义初始化方法给实例变量设值
练习:
1. 给AodiCar类添加自定义初始化方法
2. 给MobilePhone类添加自定义初始化方法
四、OC中导入头文件的两种方式
1. #import
1. 导入头文件,即将导入的头文件中的内容,赋值到当前类
2. <>用于导入类库中的头文件
3. ""用于导入自定义的类
4. 功能类似C语言中的#include,但可以避免头文件被重复包含
2. @class
1. 告诉编译器有这个类,无法导入类的接口内容
2. 有效避免嵌套引用
五、复合
1. 多个组件组合在一起,形成一个整体,然后使用整体进行工作,这种组合成为复合。
2. OC中,类的实例变量由其他类型组成。
3. 简单的说就是让两个类关联起来就是复合