s.h #import <Foundation/Foundation.h> @interface Student : NSObject { @public NSString *_name; int _age; int _height; } // @property能够自动生成set和get方法的 声明 // @property 成员变量类型 成员变量名称(去掉下划线); //- (void)setName:(NSString *)name; //- (NSString *)name; @property NSString *name; @end s.m /** 问题:想要给自己不带下划线的成员变量进行赋值,怎么办?> 需要给@synthesize指定,告诉该赋值给谁. @synthesize name = _name; 它就知道,赋值_name; */ #import "Student.h" @implementation Student @synthesize name; //生成了getset方法的实现 //- (void)setName:(NSString *)name //{ // name = name; // NSLog(@"%p",name); //} //- (NSString *)name //{ // // return name; //} @end main.m #import <Foundation/Foundation.h> #import "Student.h" int main(int argc, const char * argv[]) { @autoreleasepool { Student *s = [Student new]; s.name = @"亚索"; // 这步能够调用,证明@property生成了set和get方法的声明. [s setName:@"亚索"]; // 证明@synthesize生成了set和get方法的实现. NSLog(@"%p",s->name); NSLog(@"-----"); } return 0; }
时间: 2024-10-12 11:44:42