1.什么叫做私有属性
一个类的.h中声明的属性,用@private修饰,这样的属性叫做私有属性
2.私有属性的特点
1>
在当前类/子类外部, 不可以通过对象名->_属性名 访问,可以通过getter/setter访问
在当前类的内部: 可以用_属性名访问,也可以通过getter/setter访问.
在子类的内部:不可以用_属性名访问但是可以通过getter/setter访问.
2>子类是可以继承
int main(int argc, const char * argv[]) {
HMStudent *student = [HMStudent new];//断点走到这里可以看到父类的私有属性确实继承下来了
return 0;
}
3>在子类内部直接访问,在子类外部直接访问都是有只能提示,但是不能用
-(void)test
{
_name//不允许访问
}
@end
3.为什么有"真"私有属性的存在
就是希望在子类内部和子类外部直接访问的时候连提示都没有了!
4.如何给一个类添加一个真私有属性?
1>定义在类的.m中,访问限制是和@private相同的,只不过在子类的内部和子类的外部访问的时候没有智能提示.
2>真私有属性上面的任何属性修饰符都是无效的! |
|