// 12-【掌握】无参方法声明实现及调用 #import <Foundation/Foundation.h> //类的声明 @interface Person : NSObject { @public NSString * _name; int _age; float _weight; } //声明无参数的方法 对象方法 返回值类型 为空类型void 方法的名字叫做eat - (void)eat; //声明一个无参数对象方法 返回值类型为空类型 方法的名字叫做run - (void)run; //声明一个类方法 +表示类方法 方法名 breath 返回值类型 void + (void)breath; @end //实现类 @implementation Person //实现 无参数的方法 对象方法 返回值类型 为空类型void 方法的名字叫做eat - (void)eat{ //在对象方法中 访问 自己的 成员变量 NSLog(@" %f顿的 %@ 在吃吃吃吃 ",_weight,_name); } //实现一个无参数对象方法 返回值类型为空类型 方法的名字叫做run - (void)run{ NSLog(@"%f顿 %@ 在跑跑跑 ",_weight,_name); } //实现一个类方法 +表示类方法 方法名 breath 返回值类型 void + (void)breath{ //尝试 在类方法中 去访问成员属性 结果是失败的,因为不知道改的是哪个对象的属性。 // NSLog(@"%@在大口大口的呼吸 ",_name); } @end int main(int argc, const char * argv[]) { @autoreleasepool { //创建一个对象 Person * zhangsan = [Person new]; zhangsan->_name = @"张三丰"; zhangsan->_weight = 300.5f; //通过张三这个对象 来调用张三的无参数对象方法 // [对象名 对象方法] [zhangsan eat]; [zhangsan run]; //尝试通过类名 去调用对象方法 结果是 失败的,因为不知道调用的是哪个对象的方法 。对象方法只能通过对象来调用,类方法只能通过类调用,在类方法不能访问成员属性。 //[Person eat]; //创建了一个对象李四 Person * lisi = [Person new ]; lisi->_name = @"李斯"; lisi->_weight = 150.0f; [lisi eat]; //调用类方法 // [类名 方法名] [Person breath]; //尝试 通过 对象去调用类方法结果是失败的 // [zhangsan breath]; } return 0; }