黑马程序员----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
比较速度:跟别的狗比较速度,返回速度差
【代码实现如下】
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的速度
看了一天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.902015-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
- 黑马程序员----Objective-C学习笔记之OC基础练习笔记
- 【黑马程序员】Objective-C语言学习笔记之小知识点
- 黑马程序员---Objective-C学习笔记之二
- 黑马程序员---Objective-C 学习笔记之三
- 黑马程序员---Objective-C Foundation框架学习笔记之二
- 黑马程序员----Objective-C学习笔记之动态类型检测
- 黑马程序员----Objective-C学习笔记之构造方法
- 黑马程序员----Objective-C学习笔记之@property参数
- 黑马程序员----Objective-C学习笔记之autorelease基本使用
- 黑马程序员-----------Objective-C基础-----------OC基础
- 黑马程序员---Objective-C学习笔记之一
- 黑马程序员----OC学习笔记之NSArray
- 黑马程序员-----------Objective-C基础-----------OC简介
- 黑马程序员--OC学习笔记
- 黑马程序员-C基础运算-学习笔记
- 黑马程序员---学习笔记14:OC基础(1)
- 黑马程序员---学习笔记15:OC基础(2)
- 黑马程序员---学习笔记16:OC基础(3)
- Gas Station - LeetCode 134
- python + opencv 学习系列 1 : Getting Started with Images
- 感悟--网络找答案
- 剑指offer—二叉搜索树的后序遍历序列
- Hive笔记五:入门教程
- 黑马程序员----Objective-C学习笔记之OC基础练习笔记
- BZOJ 2525 [Poi2011]Dynamite 二分+树形贪心
- Hive笔记六:数据导入
- 张氏web漏洞检查工具发布-英文名:Mr.Zhang Web Leak Scanner GUI
- mac上mysql配置-解决连接127.0.0.1错误问题
- 剑指offer—二叉树中和为某一值的路径
- 【特种兵PPT教程】如何给你的PPT2013文件加密?
- linux中文件属性和权限修改命令chgrp|chown|chmod介绍
- python + opencv 学习系列 0 :python + opencv 配置