objective-c中点语法和成员变量作用域
2014-10-27 19:34
253 查看
一、点语法
当编译器遇到点语法时(如p.age),会自动转换成方法调用,而不是访问成员变量。
如:p.age = 10; 相当于[p setAge:10];
如:int age = stu.age; 相当于[stu age];
在使用点语法的时候,系统会自动展开成相应的方法。
@public 在任何地方均可直接访问对象成员变量
@private 只能在当前类的对象方法中直接访问(间接可以通过get、set方法访问)【@intplementation中定义变量默认是@private】
@protected 能在当前类和子类的对象方法中直接访问【 @interface中不写就默认@protected】
@package 只要处于同一个框架中,就能直接访问对象的成员变量,介于public和private之间
当编译器遇到点语法时(如p.age),会自动转换成方法调用,而不是访问成员变量。
如:p.age = 10; 相当于[p setAge:10];
如:int age = stu.age; 相当于[stu age];
在使用点语法的时候,系统会自动展开成相应的方法。
#import <Foundation/Foundation.h> @interface Person : NSObject // 定义Person类 { int _age; NSString *_name; } - (void)setAge:(int)age; - (int)age; - (void)setName:(NSString *)name; - (NSString *)name; @end @implementation Person - (void)setAge:(int)age { //_age = age; NSLog(@"setAge:"); // 会引发死循环 //self.age = age; // [self setAge:age]; } - (int)age { NSLog(@"age"); return _age; // 会引发死循环 //return self.age;// [self age]; } - (void)setName:(NSString *)name { _name = name; } - (NSString *)name { return _name; } @end int main(int argc, const char * argv[]) { Person *p = [Person new]; // 点语法的本质还是方法调用 p.age = 10; // [p setAge:10]; int a = p.age; // [p age]; p.name = @"Jack"; NSString *s = p.name; NSLog(@"%@", s); return 0; }二、成员变量的作用域
@public 在任何地方均可直接访问对象成员变量
@private 只能在当前类的对象方法中直接访问(间接可以通过get、set方法访问)【@intplementation中定义变量默认是@private】
@protected 能在当前类和子类的对象方法中直接访问【 @interface中不写就默认@protected】
@package 只要处于同一个框架中,就能直接访问对象的成员变量,介于public和private之间
相关文章推荐
- 【Objective-C】09-OC中的点语法和成员变量的作用域
- [Objective-c 基础 - 2.5] .h和.m文件,点语法,成员变量作用域
- Objective-C—self 、super、点语法、成员变量的作用域、@property和@synthesize、id
- [Objective-c 基础 - 2.5] .h和.m文件,点语法,成员变量作用域
- OC核心语法之NSString、点语法、成员变量作用域、@property和@synthesize
- 黑马程序员——【OC】点语法以及成员变量的作用域
- OC基础—点语法、成员变量的作用域
- Objective-C类成员变量的作用域、self的用法、私有方法
- Objective-C 基本语法:实例变量与成员变量的区别
- 黑马程序员--set get点语法 和 成员变量的作用域
- 黑马程序员------OC基础-----点语法、id、构造方法、Category、成员变量作用域
- 「OC」点语法和成员变量的作用域
- 黑马程序员---点语法和成员变量的作用域
- Objective - C基础: 第三天 - 3.成员变量的作用域
- OC特有语法1—点语法,成员变量作用域,@property,id,构造方法,多文件编程
- 「OC」点语法和成员变量的作用域
- OC特有语法1—点语法,成员变量作用域,@property,id,构造方法,多文件编程
- 黑马视频学习笔记-OC-点语法、成员变量的作用域
- 黑马程序员—OC点语法和成员变量作用域
- 黑马程序员---Objective-C基础学习---点方法使用和成员变量的作用域