———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———
1、@property 和@synthesize 的作用
(1) 通过@property可以自动生成属性的set,get方法的声明部分
生成的是set,get方法是哪个属性的,@property后面的名称就是属性去掉下划线后的部分
例如:
- (void)setName: (NSString *)name;
- (NSString *)name;
这两行代码可以用 @property (NSString *)name; 来代替。即通过@property可以自动生成属性_name的set,get方法声明。
(2) 通过@synthesize可以自动生成属性的set,get方法的实现部分
规则:要告诉@synthesize生成的set,get方法的实现部分是与声明当中哪一个@property相对应。要想得到_name属性,就要
再写=_name。
例如:
- (void)setName: (NSString *)name
{
_name = name;
}
- (NSString *)name
{
return _name;
}
这几行代码可以用 @synthesize name = _name; 来代替,即通过@synthesize可以自动生成属性_name的set,get方法实现。
2、@property 和 @synthesize 的练习
Girl 类,属性:姓名、身高、体重
1 #import <Foundation/Foundation.h> 2 //声明 3 @interface Girl : NSObject 4 { 5 NSString * _name; 6 double _height; 7 double _weight; 8 9 } 10 @property NSString *name; 11 @property double height; 12 @property double weight; 13 @end 14 15 //实现 16 @implementation Girl 17 @synthesize name = _name; 18 @synthesize height = _height; 19 @synthesize weight = _weight; 20 @end 21 22 int main() 23 { 24 Girl *girl1 = [Girl new]; 25 girl1.name = @"玲玲"; 26 girl1.height = 170.0; 27 girl1.weight = 50.0; 28 NSLog(@"女孩名字叫%@,身高:%.f,体重:%.f", girl1.name, girl1.height, girl1.weight); 29 return 0; 30 }
时间: 2024-10-13 16:19:42