/*
3.设计3个类,类之间的关系自拟(比如继承、组合)
1> 人
(1)属性
* 姓名
* 年龄
(2)方法
* 属性相应的set和get方法
* 设计一个对象方法同时设置姓名和年龄
2> 书
(1)属性
* 书名
* 出版社名称
* 作者(包含姓名和年龄)
(2)方法
* 属性相应的set和get方法
3> 学生
* 姓名
* 年龄
* 学号
* 书(随身带着一本书)
2> 方法
* 属性相应的set和get方法
* 设计一个对象方法-study:输出书名
*/
#import <Foundation/Foundation.h>
@interface People : NSObject
{
NSString *_name; // 姓名
int _age; // 年龄
}
// name的set和get方法
- (void)setName:(NSString *)name;
- (NSString *)name;
// age的set和get方法
- (void)setAge:(int)age;
- (int)age;
@end
@implementation People
// name的set和get方法
- (void)setName:(NSString *)name
{
_name = name;
}
- (NSString *)name
{
return _name;
}
// age的set和get方法
- (void)setAge:(int)age
{
_age = age;
}
- (int)age
{
return _age;
}
@end
//Book类
@interface Book : NSObject
{
NSString *_bookOfname; // 书名
NSString *_pressOfname; // 出版社名称
People *_auther; // 作者(包含姓名和年龄)
}
// 书名的set和get方法
- (void)setBookOfname:(NSString *)bookOfname;
- (NSString *)bookOfname;
// 出版社名称的set和get方法
- (void)setPressOfname:(NSString *)pressOfname;
- (NSString *)pressOfname;
// 作者(姓名和年龄)的set和get方法
- (void)setAuther:(People *)auther;
- (People *)auther;
@end
@implementation Book
// 书名的set和get方法
- (void)setBookOfname:(NSString *)bookOfname
{
_bookOfname = bookOfname;
}
- (NSString *)bookOfname
{
return _bookOfname;
}
// 出版社名称的set和get方法
- (void)setPressOfname:(NSString *)pressOfname
{
_pressOfname = pressOfname;
}
- (NSString *)pressOfname
{
return _pressOfname;
}
// 作者(姓名和年龄)的set和get方法
- (void)setAuther:(People *)auther
{
_auther = auther;
}
- (People *)auther
{
return _auther;
}
@end
// Student类
@interface Student : People
{
int _no; // 学生学号
Book *_book; // 学生拥有的书
}
// 学号的setter和getter
- (void)setNo:(int)no;
- (int)no;
//拥有书的setter和getter
- (void)setBook:(Book *)boot;
- (Book *)book;
- (void)study;
@end
@implementation Student
// 学号的setter和getter
- (void)setNo:(int)no
{
_no = no;
}
- (int)no
{
return _no;
}
//拥有书的setter和getter
- (void)setBook:(Book *)book
{
_book = book;
}
- (Book *)book
{
return _book;
}
- (void)study
{
NSLog(@"现在学生的书是:%@", [_book bookOfname]);
}
@end
int main()
{
People *p1 = [People new];
[p1 setName:@"jack"];
[p1 setAge:20];
Book *p2 = [Book new];
[p2 setBookOfname:@"三国演义"];
[p2 setPressOfname:@"新华社"];
Student *p3 = [Student new];
[p3 setNo:201];
[p3 setBook:p2];
[p3 study];
return 0;
}