博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
封装的关键字
阅读量:5925 次
发布时间:2019-06-19

本文共 1038 字,大约阅读时间需要 3 分钟。

/*  成员变量的作用范围:  @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

你可能感兴趣的文章
Microsoft uaa bus driver for high definition audio
查看>>
Spring(26)——PathMatchingResourcePatternResolver
查看>>
耦合_wiki
查看>>
JavaScript -- 条件语句
查看>>
Juniper 5GT透明模式配置
查看>>
使用Swift去掉字符串中的空格
查看>>
系出名门Android(10) - HTTP 通信, XML 解析, 通过 Hander 实现异步消息处理
查看>>
cisco password7方式的密码破解程序
查看>>
XCODE中使用Main.Storyboard拉入控件并实现事件(Swift语言)
查看>>
温故知新ASP.NET 2.0(C#)(5) - Localization(本地化,多语言)
查看>>
Unix Study--AIX5.3.8 安装hacmp52 报错
查看>>
深入解析 Windows Complete PC 备份
查看>>
如何使用Cisco命令阻止访问特定网站
查看>>
nodeJS(express4.x)+vue(vue-cli)构建前后端分离详细教程(带跨域)
查看>>
Oracle DBA课程系列笔记(14)
查看>>
Finding Bad Guys with 35 million Flows, 2 Analysts, 5 Minutes and 0 Dollars
查看>>
Shell 使用技巧
查看>>
云场景实践研究第61期:莉莉丝游戏
查看>>
XenDesktop 5测试中出现的一例错误:Management Interface:Remote request failed
查看>>
用perl对CDN节点日志进行统计
查看>>