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

------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的速度
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值