OC对象中拥有对象

来源:互联网 发布:linux文件管理web 编辑:程序博客网 时间:2024/05/17 06:10

/*

 3.设计3个类,类之间的关系自拟(比如继承、组合)

 1> 

 (1)属性

 * 姓名

 * 年龄

 

 (2)方法

 * 属性相应的setget方法

 * 设计一个对象方法同时设置姓名和年龄

 

 2> 

 (1)属性

 * 书名

 * 出版社名称

 * 作者(包含姓名和年龄)

 

 (2)方法

 * 属性相应的setget方法

 

 3> 学生

 * 姓名

 * 年龄

 * 学号

 * 书(随身带着一本书)

 

 2> 方法

 * 属性相应的setget方法

 * 设计一个对象方法-study:输出书名

 */


#import <Foundation/Foundation.h>


@interface People : NSObject

{

    NSString *_name;    // 姓名

    int _age;   // 年龄

}

// namesetget方法

- (void)setName:(NSString *)name;

- (NSString *)name;


// agesetget方法

- (void)setAge:(int)age;

- (int)age;


@end


@implementation People

// namesetget方法

- (void)setName:(NSString *)name

{

    _name = name;

}

- (NSString *)name

{

    return _name;

}


// agesetget方法

- (void)setAge:(int)age

{

    _age = age;

}

- (int)age

{

    return _age;

}

@end


//Book

@interface Book : NSObject

{

    NSString *_bookOfname;   // 书名

    NSString *_pressOfname; // 出版社名称

    People *_auther;    // 作者(包含姓名和年龄)

}

// 书名的setget方法

- (void)setBookOfname:(NSString *)bookOfname;

- (NSString *)bookOfname;

// 出版社名称的setget方法

- (void)setPressOfname:(NSString *)pressOfname;

- (NSString *)pressOfname;

// 作者(姓名和年龄)的setget方法

- (void)setAuther:(People *)auther;

- (People *)auther;


@end


@implementation Book

// 书名的setget方法

- (void)setBookOfname:(NSString *)bookOfname

{

    _bookOfname = bookOfname;

}

- (NSString *)bookOfname

{

    return _bookOfname;

}


// 出版社名称的setget方法

- (void)setPressOfname:(NSString *)pressOfname

{

    _pressOfname = pressOfname;

}

- (NSString *)pressOfname

{

    return _pressOfname;

}


// 作者(姓名和年龄)的setget方法

- (void)setAuther:(People *)auther

{

    _auther = auther;

}

- (People *)auther

{

    return _auther;

}

@end


// Student

@interface Student : People

{

    int _no;    // 学生学号

    Book *_book; // 学生拥有的书

}


// 学号的settergetter

- (void)setNo:(int)no;

- (int)no;


//拥有书的settergetter

- (void)setBook:(Book *)boot;

- (Book *)book;


- (void)study;


@end


@implementation Student

// 学号的settergetter

- (void)setNo:(int)no

{

    _no = no;

}

- (int)no

{

    return _no;

}


//拥有书的settergetter

- (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;

}

0 0
原创粉丝点击