黑马程序员技术交流社区
标题:
OC类、对象方法实现,交作业
[打印本页]
作者:
sunshine429
时间:
2016-1-25 22:58
标题:
OC类、对象方法实现,交作业
//
// main.m
// practice
//
// Created by Sunshine_yang on 1/25/16.
// Copyright (c) 2016 sunshine-429. All rights reserved.
//
/*
设计一个”狗“类
1> 属性
* 颜色
* 速度(单位是m/s)
* 性别
* 体重(单位是kg)
2> 行为
* 吃:每吃一次,体重增加0.5kg,输出吃完后的体重
* 吠(叫):输出所有的属性
* 跑:每吃一次,体重减少0.5kg,输出速度和跑完后的体重
* 比较颜色:跟别的狗比较颜色,如果一样,两个值做减法得零,返回NO(零值),不一样,做减法得到非零值,返回YES(1)
* 比较速度:跟别的狗比较速度,返回速度差(自己的速度 - 其他狗的速度)
*/
#import <Foundation/Foundation.h>
// 狗的颜色
typedef enum{Black, White, Bicolor}DogColor;
// 狗的性别
typedef enum{Man, Women} DOgSex;
#pragma mark 狗的声明
@interface Dog:NSObject
{
@public
// 属性
DogColor _color;
DOgSex _sex;
int _speed; // 速度(单位是m/s)
float _weight; // 体重(单位是kg)
}
// 行为
// 吃
-(void)eat:(NSString *) foodName;
// 叫
-(void)bark;
// 跑
-(void)run;
// 比较颜色
-(BOOL)isCompareColor:(Dog *) dog;
// 比较速度
-(int)isCompareSpeed:(Dog *)dog;
@end
#pragma mark 狗的实现
@implementation Dog
// 吃
-(void)eat:(NSString *) foodName{
_weight += 0.5f;
NSLog(@"吃完%@后的体重为%.1fkg", foodName, _weight);
}
// 叫
-(void)bark{
NSLog(@"狗的颜色是%d\t性别是%d\t速度是%dm/s\t体重是%.1fkg", _color, _sex, _speed, _weight);
}
// 跑
-(void)run{
_weight -= 0.5f;
NSLog(@"当前速度为%dm/s\t跑完后的体重为%.1fkg", _speed, _weight);
}
// 比较颜色
-(BOOL)isCompareColor:(Dog *) dog{
if(_color == dog->_color)
{
return NO;
}
return YES;
}
// 比较速度
-(int)isCompareSpeed:(Dog *)dog{
return _speed - dog->_speed;
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 狗的创建
Dog *d1 = [Dog new];
d1->_sex = Women;
d1->_color = Bicolor;
d1->_speed = 30;
d1->_weight = 20.2f;
Dog *d2 = [Dog new];
d2->_sex = Man;
d2->_color = Bicolor;
d2->_speed = 12;
d2->_weight = 45.5f;
// 方法的调用
[d1 bark];
[d1 eat:@"小粑粑"];
[d1 run];
[d2 bark];
[d2 eat:@"小粑粑"];
[d2 run];
NSLog(@"%d", [d1 isCompareColor:d2]);
NSLog(@"速度差为%d", [d1 isCompareSpeed:d2]);
NSLog(@"%d", [d2 isCompareColor:d1]);
NSLog(@"速度差为%d", [d2 isCompareSpeed:d1]);
}
return 0;
}
复制代码
作者:
水丹青
时间:
2016-1-29 00:01
点赞点赞......
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2