黑马程序员——OC语言——点语法
2015-04-16 22:22
267 查看
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
一,概念
点语法集合set和get方法,使代码更加简洁。
Student *stu = [Student
new];
[stu
setAge:100];
int age = [stu
age];
点语法
stu.age =
100;
int age = stu.age;
当使用点语法时,编译器会自动展开成相应的方法
// 下面的代码会引发死循环
self.age = age;
}
- (int)age {
// 下面的代码会引发死循环
return self.age;
}
下面用代码验证
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
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()
{
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;
}
一,概念
点语法集合set和get方法,使代码更加简洁。
二,利用点语法替换set方法和get方法
方法调用Student *stu = [Student
new];
[stu
setAge:100];
int age = [stu
age];
点语法
stu.age =
100;
int age = stu.age;
三,点语法的本质
其实点语法的本质还是方法调用当使用点语法时,编译器会自动展开成相应的方法
四,死循环注意
- (void) setAge:(int)age {// 下面的代码会引发死循环
self.age = age;
}
- (int)age {
// 下面的代码会引发死循环
return self.age;
}
下面用代码验证
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
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()
{
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;
}
相关文章推荐
- 黑马程序员-OC语言基础:OC特有语法
- 黑马程序员 OC语言 - 1 语法概览
- 黑马程序员-OC语言核心语法(3)(分类、SEL、类本质)
- 黑马程序员---【OC语言】05点语法与作用域
- 黑马程序员——OC语言------基本语法
- 黑马程序员 OC语言 - 4 OC特有语法
- 黑马程序员——Objective-C语言知识点总结之OC特有语法
- 黑马程序员——OC语言基础篇---核心语法
- 黑马程序员——OC语言学习——Xcode开发初始化、点语法、成员变量作用域、关键字@property和@synthesize
- 黑马程序员_OC语言的点语法和合成存取方法
- 黑马程序员IOS-OC语言-点语法、@property
- 黑马程序员——OC语言------OC特有语法:分类、description、类对象、SEL
- 黑马程序员-OC语言核心语法(1)
- 黑马程序员-OC语言之核心语法
- 黑马程序员-OC语言基础:面向对象语法 二
- 黑马程序员——OC语言核心语法
- 黑马程序员——OC语言基础篇---基本语法、类
- 黑马程序员——OC语言------NSString、多文件开发、点语法、成员变量的作用域、@property和@synthesize
- 黑马程序员-OC语言基础:面向对象语法 四
- 黑马程序员 -- OC语言 NSString使用 点语法 构造 分类