A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ZzzZZzz 中级黑马   /  2016-7-10 17:29  /  1582 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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>真私有属性上面的任何属性修饰符都是无效的!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马