您的位置:首页 > 移动开发 > Objective-C

黑马程序员----Objective-C学习笔记之OC基础练习笔记

2015-10-03 22:49 519 查看
------Java培训、Android培训、iOS培训、.Net培训--------

看了一天OC,根据视频上老师的要求,自己动手写了个小例子。欢迎大家指出不足的地方

【要求】

设计一个“狗”类

1)属性

颜色、速度(m)、性别,体重(kg)

2)行为

吃:每吃一次,体重增加0.5kg,输出处完后的体重

叫:输出所有属性

跑:每跑一次,体重减少0.5kg,输出速度和跑完后的体重

比较颜色:跟别的狗一样,两个值做减法得零,返回NO,不一样,做减法得到非零,返回YES

比较速度:跟别的狗比较速度,返回速度差

【代码实现如下】
#import <Foundation/Foundation.h>

#pragma mark 枚举变量定义部分
//定义颜色
typedef enum{Black,Red,White,Yellow,Silver}Color;
//定义性别
typedef enum{Female,Male} Sex;

#pragma mark 狗类定义部分
@interface Dog : NSObject{
@public
NSString *_name; //名字
float _weight;  //体重
Color _color;   //颜色
Sex _sex;       //性别
float _speed;   //速度
}
//吃东西 _weight+=0.5
-(void)eat:(NSString*)food;

//运动 _weight-=0.5
-(void)run;

//bark 叫-->打印狗的所有信息
-(void)bark;

//与其他狗比较颜色,相同返回YES,不同返回NO
-(BOOL)compareColorWithOther:(Dog*)dog;

//与其他狗比较速度,返回速度差
-(float)compareSpeedWithOther:(Dog*)dog;

@end

#pragma mark 狗类实现部分
@implementation Dog

//狗吃东西_weight += 0.5
-(void)eat:(NSString *)food{
self->_weight += 0.5;
NSLog(@"%@ eat %@,然后打了一个饱嗝,吃完体重为%.2f",self->_name, food, self->_weight);
}
//狗运动_weight -= 0.5
-(void)run{
self->_weight -= 0.5;
NSLog(@"%@ 撒欢跑了起来,跑完后体重为:%.2f",self->_name,self->_weight);
}
//狗叫
-(void)bark{
NSLog(@"[name:%@ sex:%d weight:%.2f color:%d speed:%.2f]",_name,_sex,_weight,_color,_speed );
}
//与其他狗比较颜色,与其他狗颜色相同返回NO,否则返回YES
-(BOOL)compareColorWithOther:(Dog *)dog{
return _color-dog->_color != 0 ? YES : NO;
}
//与其他狗比较速度,返回速度差
-(float)compareSpeedWithOther:(Dog *)dog{
return _speed - dog->_speed;
}
@end

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

@autoreleasepool {
//定义第一只狗
Dog *dog1 = [[Dog alloc] init];
dog1->_name = @"Lisa";
dog1->_weight = 20.4f;
dog1->_sex = Female;
dog1->_color = White;
dog1->_speed = 10.9f;
//定义第二只狗

Dog *dog2 = [Dog new];
dog2->_name = @"Blue";
dog2->_weight = 40.6f;
dog2->_sex = Male;
dog2->_color = Black;
dog2->_speed = 30.9f;

//dog1执行动作
[dog1 eat:@"Rich wiht Shit"];
[dog1 run];
[dog1 eat:@"Shit"];
[dog1 bark];

//两只狗比较颜色
if (![dog1 compareColorWithOther:dog2]) {
NSLog(@"%@ 与%@的颜色相同",dog1->_name, dog2->_name);
}
else{
NSLog(@"%@ 与%@的颜色不相同",dog1->_name, dog2->_name);
}
//两只狗比较速度
float temp = [dog1 compareSpeedWithOther:dog2];
if([dog1 compareSpeedWithOther:dog2] >= 0){
NSLog(@"%@ 的速度大于等于%@的速度",dog1->_name, dog2->_name);
}
else{
NSLog(@"%@ 的速度小于%@的速度",dog1->_name, dog2->_name);
}

}
return 0;
}

打印结果:

2015-10-03 22:45:43.959 PersonAndDoa[2220:303] Lisa eat Rich wiht Shit,然后打了一个饱嗝,吃完体重为20.90

2015-10-03 22:45:43.961 PersonAndDoa[2220:303] Lisa 撒欢跑了起来,跑完后体重为:20.40

2015-10-03 22:45:43.962 PersonAndDoa[2220:303] Lisa eat Shit,然后打了一个饱嗝,吃完体重为20.90

2015-10-03 22:45:43.963 PersonAndDoa[2220:303] [name:Lisa sex:0 weight:20.90 color:2 speed:10.90]

2015-10-03 22:45:43.963 PersonAndDoa[2220:303] Lisa 与Blue的颜色不相同

2015-10-03 22:45:43.963 PersonAndDoa[2220:303] Lisa 的速度小于Blue的速度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: