黑馬程序員----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的速度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章