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

来源:互联网 发布:gnu和linux的关系 编辑:程序博客网 时间:2024/05/19 16:04
------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;}@endint 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的速度
0 0
原创粉丝点击