iOS 成员变量的作用范围
2014-03-01 20:43
369 查看
/* 成员变量的作用范围: @public:在任何地方都能直接访问对象的成员变量 @private:只能在当前类的对象方法中直接访问,如果子类要访问需要调用父类的get/set方法 @protected:可以在当前类及其子类对象方法中直接访问(系统默认下是用它来修饰的) @package:在同一个包下就可以直接访问,比如说在同一个框架 注意: 无论父类是在@interface还是@implementation声明的成员变量子类都能拥有;但是子类能不能直接通过变量名来访问父类中定义的成员变量是需要看父类中定义的成员变量是由什么修饰符来修饰的。 默认:在@implementation中成员变量的修饰符为@private, 在@interface中成员变量的修饰符@protected */ #import <Foundation/Foundation.h> @interface Person : NSObject { @public int _no; // 学号 @private int _age; // 年龄 @protected NSString *_name; // 姓名 } // 由@pirvate修饰的成员变量,子类对象只能通过get/set来访问 - (void)setAge:(int)age; - (int)age; @end /********************************在mian方法中*******************************/ #import <Foundation/Foundation.h> #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; }
相关文章推荐
- 【iOS】设备常见传感器
- 【iOS7】定制iOS 7中的导航栏和状态栏
- IOS项目开发布局三
- iOS项目的目录结构和开发流程
- KVC和KVO的学习
- VS2010无法打开包括文件:“iostream.h”问题
- iOS 逆向之ARM汇编
- Hacking EV3系列之五:iOS通过BTstack发送message给EV3
- Hacking EV3系列之四:BTstack与iOS通信
- IOS正则判断手机号码,电话号码函数, NSPredicate使用
- ios学习笔记
- iOS开发之静态库的制作
- iOS KVC & KVO
- iOS7终极适配
- iOS设计模式:观察者
- 在MacOS和iOS系统中使用OpenCV
- 如何在iOS中使用ZXing库
- iOS系统Crash文件分析方法
- iOS OpenGL ES 2.0教程 Lesson04--3D空间
- iOS OpenGL ES2.0教程 Lesson03 旋转