默认成员变量是私有的 只在本身这个类里面可以使用
@property演变过程
但是由于代码量过于复杂冗长,引入了@property (声明)和 @synthesize(实现)
后来又简化成只有@property,而省略了@synthesize,自动生成
最后省略了成员变量改为属性,去掉了大括号,用@property属性一句话写完
代码:
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) int age;
/*
1. 定义了一个属性 name
2. 声明了一个set方法
3. 声明了一个get方法
4. 实现了相应的setter/getter方法
*/
定义了一个吃面包的函数,在内部方法调用内部属性的时候,要用_name,因为@synthesize虽然省略了,但是该实现的还是实现了
-(void)eat:(Bread *)aBread{
NSLog(@"%@吃掉了%@面包",_name,aBread.style);
}
main中赋值和调用的时候有两种方式
1. hr.name = @"wangkaiyu";
NSLog(@"%@",wky.name);
2. [hr setAge:22];
NSLog(@"%d",[wky age]);