OC学习第三天

main.m文件

#import <Foundation/Foundation.h>

#import "Person.h"

#import "Book.h"

#import "Student.h"

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        Student *stu1=[Student new];

        Student *stu2=[Student new];

        Book *book1=[Book new];

        Book *book2=[Book new];

        Person *p1=[Person new];

        Person *p2=[Person new];

        //学生

        [stu1 setName:@"张三" age:12 number:12345];

        [stu2 setName:@"李四" age:13 number:13456];

        //书名

        [book1 setBookname:@"西游记"];

        [book2 setBookname:@"水浒传"];

        //出版社

        [book1 setPrsee:@"科学出版社"];

        [book2 setPrsee:@"社会出版社"];

        //作者

        [p1 setName:@"王五" age :30];

        [p2 setName:@"赵六" age :40];

//        book1.author.name ==book1->_author->name ==[[book1 author] name]

        //打印两个学生的属性

        NSLog(@"%@ %li %li %@ %@ %@ %li",stu1.name,stu1.age,stu1.number,book1.bookname,book1.prsee,p1.name,p1.age);

        NSLog(@"%@ %li %li %@ %@ %@ %li",stu2.name,stu2.age,stu2.number,book2.bookname,book2.prsee,p2.name,p2.age);

        //打印两个学生的属性对比结果

        NSLog(@"%hhi",[stu1 compareStudentwithother:stu2]);

    }

    return 0;

}

Person.h文件

#import <Foundation/Foundation.h>


@interface Person : NSObject

{

    NSString *_name;

    NSInteger _age;

    

}

//人的名字

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

- (NSString *)name;


//人的年龄

- (void) setAge :(NSInteger)age;

- (NSInteger) age;


//比较两个人的名字和年龄

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

+ (BOOL) comparePerson1:(Person *)person1 person2:(Person *)person2;


@end

Person.m文件

#import "Person.h"


@implementation Person

//人的名字

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

    _name=name;

}

- (NSString *)name{

    return _name;

}


//人的年龄

- (void) setAge :(NSInteger)age{

    _age=age;

}

- (NSInteger) age{

    return _age;

}


//比较两个人的名字和年龄

- (void) setName:(NSString *)name age:(NSInteger)age{

    _age=age;

    _name=name;

}

+ (BOOL) comparePerson1:(Person *)person1 person2:(Person *)person2{

    return [person1.name isEqualToString:person2.name] && person1.age==person2.age;

}

@end

Book.h文件

#import "Person.h"


@interface Book : Person

{

    NSString *_bookname;

    NSString *_prsee;

    Person *_author;

}


//书名

- (void) setBookname:(NSString *)bookname;

- (NSString *)bookname;


//出版社名字

- (void) setPrsee:(NSString *)prsee;

- (NSString *)prsee;


//作者

- (void) setAuthor:(Person *)author;

- (Person *)author;

@end

Book.m文件

#import "Book.h"


@implementation Book

//书名

- (void) setBookname:(NSString *)bookname{

    _bookname=bookname;

}

- (NSString *)bookname{

    return _bookname;

}


//出版社名字

- (void) setPrsee:(NSString *)prsee{

    _prsee=prsee;

}

- (NSString *)prsee{

    return _prsee;

}


//作者

- (void) setAuthor:(Person *)author{

    _author=author;

}

- (Person *)author{

    return _author;

}

@end

Student.h文件

#import "Person.h"

#import "Book.h"

@interface Student : Person

{

    NSInteger _number;

    Book *_book;

    

}


//学号

- (void) setNumber:(NSInteger)number;

- (NSInteger)number;

//调用书本

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

- (Book *) book;

//比较学生

- (void) setName:(NSString *)name age :(NSInteger)age number:(NSInteger)number;

- (BOOL) compareStudentwithother:(Student *)other;

+ (BOOL) compareStudent1:(Student *)student1 student2:(Student *)student2;

@end

Student.m文件

#import "Student.h"


@implementation Student

//学号

- (void) setNumber:(NSInteger)number{

    _number=number;

}

- (NSInteger)number{

    return _number;

}

//调用书本

- (void) setBook:(Book *)book{

    _book=book;

}

- (Book *) book{

    return _book;

}

//比较学生

- (void) setName:(NSString *)name age :(NSInteger)age number:(NSInteger)number{

    _name=name;

    _age=age;

    _number=number;

}

- (BOOL) compareStudentwithother:(Student *)other{

    return [Student comparePerson1:self person2:other] && _number==[other number];

}

+ (BOOL) compareStudent1:(Student *)student1 student2:(Student *)student2{

    return [student1 compareStudentwithother:student2];

}

@end




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值