A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 你不勇敢, 中级黑马   /  2014-12-14 20:03  /  1361 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*/*
3.设计3个类,类之间的关系自拟(比如继承、组合)
1> 人
(1)属性
* 姓名
* 年龄

(2)方法
* 属性相应的set和get方法
* 设计一个对象方法同时设置姓名和年龄

2> 书
(1)属性
* 书名
* 出版社名称
* 作者(包含姓名和年龄)

(2)方法
* 属性相应的set和get方法

3> 学生
* 姓名
* 年龄
* 学号
* 书(随身带着一本书)

2> 方法
* 属性相应的set和get方法
* 设计一个对象方法-study:输出书名


// 书 拥有一个 作者 --> 组合
// 学生 是一个 人 --> 继承
// 学生 拥有一本 书 --> 组合

*/


#import <Foundation/Foundation.h>
/****************人************************/
@interface Person : NSObject
{
    NSString *_name;
    int _age;
}
- (void)setName:(NSString *)name;
- (NSString *)name;

- (void)setAge:(int)age;
- (int)age;

- (void)setName:(NSString *)name andAge:(int)age;
@end
/*****************书**********************/
@interface Book : NSObject
{
    NSString *_sname;//书名
    NSString *_publishing;//出版社
   
    Person *_person;//作者姓名与年龄
   
}
- (void)setSname:(NSString *)sname;
- (NSString *)sname;

- (void)setPublishing:(NSString *)publishing;
- (NSString *)publishing;

//- (void)setAuthor:(NSString *)author;
//- (NSString *)author;
@end
//书的实现
@implementation Book

- (void)setSname:(NSString *)sname
{
    _sname = sname;
}
- (NSString *)sname
{
    return _sname;
}

- (void)setPublishing:(NSString *)publishing
{
    _publishing = publishing;
}
- (NSString *)publishing
{
    return _publishing;
}
@end
/*****************学生**********************/
@interface Student : Person
{
    int _no;
    Book *_shu;
   
}
- (void)setNo:(int)no;
- (int)no;

- (void)study;
@end
int main()
{
    Person *p = [Person new];
   
    [p setName:@"woaixiangxiang"];
    [p setAge:22];
   
    [p setName:@"woaixiangxiang" andAge:22];
    //书的名字方法
    [Book setSname:"asdasd"];
    [Book setPublishing:@"asdasd"];
    //输出学生拥有的书的名字
    return 0;
}


//人的实现
@implementation Person
- (void)setName:(NSString *)name
{
   
    _name = name;
}
- (NSString *)name
{
    return _name;
}

- (void)setAge:(int)age
{
    _age =age;
}
- (int)age
{
    return _age;
}

- (void)setName:(NSString *)name andAge:(int)age
{
    [self setName:name];
    [self setAge:age];
}
@end


//学生的实现
@implementation Student
- (void)setNo:(int)no
{
    _no = no;
}
- (int)no
{
    return _no;
}


- (void)study
{
    NSLog(@"%@",[_shu sname]);
}

@end



屏幕快照 2014-12-14 20.02.27.png (140.21 KB, 下载次数: 12)

屏幕快照 2014-12-14 20.02.27.png

6 个回复

倒序浏览
为什么老是出这个警告0 0 视频里也没讲。 求大神告诉
回复 使用道具 举报
没人么  自顶
回复 使用道具 举报
因为你的代码里好多悲伤脸= =! - (void)setPublishing - (void)setSname 这两个不是对象方法吗,你用的Book类调用的 编译器认为这方法应该是个类方法 但是你确实没有 所以警告你说类方法找不到
回复 使用道具 举报
从今以后 发表于 2014-12-15 02:04
因为你的代码里好多悲伤脸= =! - (void)setPublishing - (void)setSname 这两个不是对象方法吗,你用的Boo ...

我用Xcode试了下直接编译报错 终端居然只是个警告= =学到这里开始用Xcode吧
回复 使用道具 举报
从今以后 发表于 2014-12-15 02:04
因为你的代码里好多悲伤脸= =! - (void)setPublishing - (void)setSname 这两个不是对象方法吗,你用的Boo ...

哦哦 我懂了0 0 谢谢啊  好简单的问题 0 0 我纠结半天 谢谢大神了 终端就是这样啊
回复 使用道具 举报
你还用类方法了?你类方法声明,实现了?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马