黑马程序员技术交流社区
标题:
省略@synthesize,生成的私有成员变量
[打印本页]
作者:
sabjiang
时间:
2014-5-3 14:35
标题:
省略@synthesize,生成的私有成员变量
在Xcode 4.5,可以在类里面,省略@synthesize对@Property的实现,直接在.h文件中声明即可:@property int age;这样声明之后,.m文件里会自动生成一个_age成员变量。可是使用这个类的时候,给age属性赋值,却依然调用的是age,这是怎么回事?
#import <Foundation/Foundation.h>
@interface Student : NSObject
@property int age;
@end
复制代码
#import "Student.h"
@implementation Student
-(void)test{
_age=10;
}
@end
复制代码
Student *stu=[[Student alloc] init];
stu.age=10;
NSLog(@"%d",stu.age);
[stu release];
复制代码
作者:
执着的土豆
时间:
2014-5-3 14:49
你那不就是调用的stu的age的setter和getter方法么? 因为生成的成员变量默认是private类型的成员变量。而这种类型的变量,只能在类的实现中直接访问,在主函数中,需要调用其setter和getter方法访问
作者:
dawn.dai
时间:
2014-5-3 15:08
Student *stu=[[Student alloc] init];
stu.age=10;
//等价于[stu setAge:10]; //setter 内部 :_age=10
NSLog(@"%d",stu.age);
//[stu age]; //getter
[stu release];
作者:
曹雨
时间:
2014-5-3 23:36
老师视频里讲过,点方法只是为了书写方便,计算机会自动翻译成set,get的,好好听老师讲课
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2