// 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;
}