ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
//Student类 //@interface 定义一个类的关键字 //@end 表示类定义结束 //Student : 类名 //NSObject: 根类(基类) ~~~ @interface Student : NSObject { //实例变量的定义,命名通常以_开头 NSString * _name; NSInteger _age; } //构造方法(初始化方法) //id 类似于 C语言中的 void * //- 说明该方法是一个对象方法(实例方法) //无传入参数 //返回值是 泛型的对象 //方法名: int - (id)init; //setter方法 //有一个传入参数 name //无返回值 //方法名是 setName: -(void) setName:(NSString *)name; -(void) setAge:(NSInteger)age; //有两个传入参数 name age //无返回值 //方法名是 setName:andAge: -(void) setName:(NSString *)name andAge:(NSInteger)age; //匿名方法 -(void)setName:(NSString *)name :(NSInteger)age; //gette方法 , 读取实例变量的值 -(NSString *)name; -(NSInteger)age; //类方法 +(void)testStudent; @end ~~~ ~~~ //@implementation 实现类的关键字 //@end 类实现结束 @implementation -(id) init //初始化对象的方法 { self = [super init]; //self 表示调用者,指向调用的对象指针变量 //super 是调用父类方法的关键字 if(self) { _name = @"小小"; _age = 18; } return self; } //setter方法访问修改实例变量的值 -(void)setName:(NSString *)name { _name = name; } -(void)setAge:(NSInteger)age { _age = age; } -(void)setName:(NSString *)name andAge:(NSInteger)age { _name = name; _age = age; } -(void)setName:(NSString *)name :(NSInteger)age { _name = name; _age = age; } //gettr方法访问读取实例变量的值 -(NSString *)name { return _name; } -(NSInteger)age { return _age; } //+ 开头的方法为类方法,给类调用的方法,通常用类名调用 +(void)testStudent { Student *stu = [[Student alloc] init]; [stu setName:@"啪啪"]; [stu setAge:28]; } @end ~~~ ~~~ int main(int argc,const char * argv[]) { @autoreleasepool { Student *stu = [[Student alloc] init]; //Student类通过alloc方法创建一个对象 NSLog(@"stu= %@, age=%li" ,[stu name] ,[stu age]); NSLog(@"stu= %@, age=%li" ,[[[Student alloc] init] name] ,[[[Student alloc] init] age]); //识别很吃力 [stu setName:@"小马"]; [stu setAge:17]; [stu setName:@"小马" setAge:17]; NSLog(@"stu= %@, age=%li" ,[stu name] ,[stu age]); //%@ 打印对象的占位符 [Student testStudent]; } return 0; } ~~~