封装的关键字

/*
  成员变量的作用范围:
  @public:在任何地方都能直接访问对象的成员变量
  @private:只能在当前类的对象方法中直接访问,如果子类要访问需要调用父类的get/set方法
  @protected:可以在当前类及其子类对象方法中直接访问(系统默认下是用它来修饰的)
  @package:在同一个包下就可以直接访问,比如说在同一个框架

注意:
    无论父类是在@interface还是@implementation声明的成员变量子类都能拥有;但是子类能不能直接通过变量名来访问父类中定义的成员变量是需要看父类中定义的成员变量是由什么修饰符来修饰的。 默认:在@implementation中成员变量的修饰符为@private, 在@interface中成员变量的修饰符@protected */ #import @interface Person : NSObject { @public int _no; // 学号 @private int _age; // 年龄 @protected NSString *_name; // 姓名 } // 由@pirvate修饰的成员变量,子类对象只能通过get/set来访问 - (void)setAge:(int)age; - (int)age; @end /********************************在main方法中*******************************/ #import #import "Person.h" #import "Student.h" int main(int argc, const char * argv[]) { Person *person = [Person new]; // 在Person.h文件中no是@public修饰的可以直接访问 person->_no = 10; NSLog(@"%d",person->_no); // 打印是10 // Student类继承了父类Person类中的所有成员变量和方法,但是子类不能直接访问父类中由@private修饰的成员变量 Student *stu = [Student new]; [stu setAge:1000]; NSLog(@"%d",[stu age]); return 0; }

转载于:https://www.cnblogs.com/R-X-L/p/4797890.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值