当对象作为方法传递的时候传递的是对象的指针
#import <Foundation/Foundation.h>
#pragma mark - 定义一个图书类
@interface Book : NSObject
{
NSString *_name; // 书名
int _pageNum; // 书的页数
}
- (void)setName:(NSString *)name;
- (void)setPageNum:(int)pageNum;
- (NSString *)name;
- (int)pageNum;
@end
#pragma mark - 定义一个人类
@interface Person : NSObject
{
NSString *_name; // 姓名
int _age; // 年龄
double _height; // 身高
};
// setter
- (void)setName:(NSString *)name;
- (void)setAge:(int)age;
- (void)setHeight:(double)height;
// getter
- (NSString *)name;
- (int)age;
- (double)height;
// 输出个人信息
- (void)printInfo;
// 读书
- (void)readBook:(Book *)bk;
@end
#pragma mark - 程序入口
int main(int argc, const char * argv[]) {
// 实例化一个人对象
Person *person = [Person new];
[person setName:@"张三"];
[person setAge:18];
[person setHeight:1.8];
// 实例化书类
Book *book = [Book new];
[book setName:@"oc入门到精通"];
[book setPageNum:200];
// 调用人person对象的readBook方法,将Book的对象 book 进行传递
[person readBook:book]; // 张三 正在读oc入门到精通书,一共200页
return 0;
}
#pragma mark - 实现一个人类
@implementation Person
- (void)printInfo {
NSLog(@"姓名: %@ 年龄: %i 身高: %lf", _name, _age, _height);
}
// setter
- (void)setName:(NSString *)name {
_name = name;
}
- (void)setAge:(int)age {
_age = age;
}
- (void)setHeight:(double)height {
_height = height;
}
// getter
- (NSString *)name {
return _name;
}
- (int)age {
return _age;
}
- (double)height {
return _height;
}
- (void)readBook:(Book)bk {
NSLog(@"%@ 正在读%@书,一共%i页", _name, [bk name], [bk pageNum]);
}
@end
#pragma mark - 实现书类
@implementation Book
- (void)setName:(NSString *)name {
_name = name;
}
- (void)setPageNum:(int)pageNum {
_pageNum = pageNum;
}
- (NSString *)name {
return _name;
}
- (int)pageNum {
return _pageNum;
}
@end