第二讲实例变量可见度,set/get方法,自定义初始化 及description的使用
一.实例变量可见度,方法(面试题)
1>.实例变量可见度
public(共有的):实例变量可以在类的内部和外部操作
protected(受保护的,默认的):实例变量只能在该类和其子类内操作
private(私有的):实例变量只能在该类内访问
注意: 为什么我们很少使用@public?
a. 使用@public暴露了类内部的细节
b. 不符合面向对象的三大特性之一--封装
二.setter和getter方法
1>.类方法中不能使用实例变量
在OC里,为实例变量赋值的方法称作setter (设置器)。读取实例变量值的方法称作getter(访问器)。
2>.书写格式: 如果一个实例变量是int age;或者int _age;
setter的书写格式如下:- (void)setAge:(int)age;即set+首字⺟母⼤写的实例变量名(忽略下划线)。
getter的书写格式如下: - (int)age;即返回值类型与变量类型一 致,方法名与实例变量名相同(忽略下划线)
注:每个实例变量都需要一对setter和getter方法
实例变量:Person.h
Person.m
main.m
三.自定义初始化(其中包含description方法的使用)
1>.格式: -(id)initWithName: 自定义初始化⽅方法,根据需求定义初始化方法。
2>.在使用自定义初始化方法时,必须配合setter/getter方法使用同时注意调用的方法
实例代码:(其中包含description方法的使用)
Person.h文件
Person.m文件
main.m文件(包含description方法输出)