黑马程序员技术交流社区
标题: 人的对象 [打印本页]
作者: 赵安庆 时间: 2016-5-12 22:11
标题: 人的对象
/*
设计一个”狗“类
1> 属性
* 颜色
* 速度(单位是m/s)
* 性别
* 体重(单位是kg)
2>行为
* 吃:每吃一次,体重增加0.5kg,输出吃完后的体重
* 吠(叫):输出所有的属性
* 跑:每吃一次,体重减少0.5kg,输出速度和跑完后的体重
* 比较颜色:跟别的狗比较颜色,如果一样,两个值做减法得零,返回NO(零值),不一样,
做减法得到非零值,返回YES(1)
* 比较速度:跟别的狗比较速度,返回速度差(自己的速度 - 其他狗的速度)
.结合前面的“狗”类,设计一个“人”类
1> 属性
* 姓名
* 狗(养了一条狗)
2> 行为
* 喂狗:每喂一次,狗就会执行“吃”这个行为
* 遛狗:每溜一次,狗就会执行“跑”这个行为
*/
#import <Foundation/Foundation.h>
#pragma mark 狗类的定义
typedef enum{KColorwhite,kColorblack,kColoryellow} color;
typedef enum{gong,mu,yao} sex;
#pragma mark -
@interface Dog:NSObject
{//狗的实例变量
@public
color _color;
//狗的体重
double _weight;
//狗的性别
sex _sex;
//狗的速度
int _speed;
}
//狗的行为
//体重+0.5
-(void)eat:(NSString *)foodName;
//体重-0.5
-(void)run;
//打印所以信息
-(void)bark;
//比较颜色
-(BOOL)compareColor:(Dog *)dog;
//比较速度
-(int)compareSpeed:(Dog *)dog;
@end
#pragma mark -
#pragma mark 狗类的实现
@implementation Dog
//狗的行为
//体重+0.5
-(void)eat:(NSString *)foodName{
_weight+=0.5;
NSLog(@"够正在吃%@,体重为%.2f",foodName,_weight);
}
//体重-0.5
-(void)run{
_weight -=0.5;
NSLog(@"跑后体重为%.2f",_weight);
}
//打印所以信息
-(void)bark{
NSLog(@"颜色:%d,性别:%d,速度:%d,体重:%.2f",_color,_sex,_speed,_weight);
}
//比较颜色
-(BOOL)compareColor:(Dog *)dog{
//当前狗的 颜色 另一狗的颜色
if (_color == dog->_color) {
return YES;
}else{
return NO;
}
}
//比较速度
-(int )compareSpeed:(Dog *)dog{
//当前狗的速度-另一狗的 速度
return _speed-dog->_speed;
}
@end
#pragma mark -
#pragma mark 人定义
@interface Person:NSObject
{ @public
NSString *_name;
Dog *_dog;
}
//行为
//喂狗
-(void)feedDog:(NSString *)foodName;
//遛狗
-(void)liuDog;
@end
#pragma mark -
#pragma mark 人实现
@implementation Person
//喂狗
-(void)feedDog:(NSString *)foodName{
//让狗吃东西
[_dog eat:foodName];
}
//遛狗
-(void)liuDog{
//让狗跑起来
[_dog run];
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Dog *d1 = [Dog new];
d1->_speed = 20;
d1->_sex = mu;
d1->_color = kColorblack;
d1->_weight = 50;
//创建人的 对象
Person *p = [Person new];
//给人一条狗
p->_dog = d1;
NSLog(@"%@",p->_dog);
//人要喂狗
[p feedDog:@"吃屎的狗"];
NSLog(@"不忘初心,方得始终!");
}
return 0;
}
作者: 赵安庆 时间: 2016-5-12 22:12
6666666666666666666666
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |