黑马程序员技术交流社区
标题:
刚刚帖子发错了,重新发,求教组合如何使用
[打印本页]
作者:
为梦想挺身而出
时间:
2014-5-7 11:53
标题:
刚刚帖子发错了,重新发,求教组合如何使用
本帖最后由 为梦想挺身而出 于 2014-7-18 11:22 编辑
#import <Foundation/Foundation.h>
//成绩
@interface Score : NSObject
{
int _cScore;
int _ocScore;
}
- (void)setCScore:(int)cScore;
- (int)cScore;
+ (void)test;
@end
@implementation Score
- (void)setCScore:(int)cScore
{
_cScore = cScore;
}
- (int)cScore
{
return _cScore;
}
+ (void)test
{
NSLog(@"调用你了test函数");
}
@end
//学生
@interface Student : NSObject
{
//组合,使Student拥有Score的成员变量
Score *_score;
int _weight;
}
@end
@implementation Student
@end
int main()
{
//这里报错
Student *s = [Student new];
[s setCScore:90];
NSLog(@"这个学生的成绩是%d分", [s cScore]);
[Student test];
/*问题
1.继承有子类与父类之说,组合有没有
2.组合里面的成员变量如何使用啊
*/
return 0;
}
复制代码
作者:
兰闻天
时间:
2014-5-7 12:33
#import <Foundation/Foundation.h>
//成绩
@interface Score : NSObject
{
int _cScore;
int _ocScore;
}
- (void)setCScore:(int)cScore;
- (int)cScore;
+ (void)test;
@end
@implementation Score
- (void)setCScore:(int)cScore
{
_cScore = cScore;
}
- (int)cScore
{
return _cScore;
}
+ (void)test
{
NSLog(@"调用你了test函数");
}
@end
//学生
@interface Student : NSObject
{
//组合,使Student拥有Score的成员变量
Score *_score;
int _weight;
}
// 这个要写全
- (void)setScore:(Score *)score;
- (Score *)score;
@end
@implementation Student
- (void)setScore:(Score *)score
{
_score = score;
}
- (Score *)score
{
return _score;
}
@end
int main()
{
//这里报错
Student *s = [Student new];
// [s setCScore:90]; // 你这个是继承的时候的写法
Score *sc = [Score new]; // 组合并不能直接调用score里的内容,需要你先创建一个Score对象,然后把这个对象给Student
[sc setCScore:90];
[s setScore:sc];
// NSLog(@"这个学生的成绩是%d分", [s cScore]);这是错误的
// 应该是用Student中的score这个对象属性去调用Score这个对象里的属性
NSLog(@"这个学生的成绩是%d分", [[s score] cScore]);
// test是Score的类方法,不能用Student去调用
// [Student test];
/*问题
1.继承有子类与父类之说,组合有没有
2.组合里面的成员变量如何使用啊
*/
return 0;
}
复制代码
作者:
为梦想挺身而出
时间:
2014-5-7 13:17
[[s score] cScore]
这里的[s score] 就是sc
明白了 谢谢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2