黑马程序员技术交流社区
标题:
oc学习笔记之类和对象
[打印本页]
作者:
cherrycool
时间:
2015-12-2 22:20
标题:
oc学习笔记之类和对象
#import <Foundation/Foundation.h>
//引入头文件
typedef enum{kCOlorWhite,kColorBlack,kColorYellow} Color;
// typedef可以为数据类型定义新的类型名称,将枚举类型定义为Color
#pragma mark 狗的类声明
// pragma mark标记代码,用于代码的分组和导航功能
@interface Dog:NSObject
{//狗的属性
@public
Color _color;//狗的颜色
float _weight;//狗的体重
}
//狗的行为
-(void)eat:(NSString *)foodName;//-表示对象方法
-(void)run;
@end
#pragma mark 狗的类的实现
@implementation Dog
-(void)eat:(NSString *)foodName{
_weight+=0.5;
NSLog(@"狗吃了%@,体重为%.2f",foodName,_weight);
/*狗吃了食物,体重增加0.5kg*/
}
-(void)run{
_weight-=0.1;
NSLog(@"狗的颜色%d,体重为%.2f",_color,_weight);
/*狗做一次运动,体重会减少0.1kg*/
}
@end
#pragma mark 人的类声明
@interface Person: NSObject
{ //人的属性(实例变量)
@public
NSString *_name;//人的姓名
Dog *_dog;//狗的类
}
//人的行为
-(void)feedDog:(NSString *) foodName;//喂狗吃食物
-(void)walkDog;//遛狗
@end
@implementation Person
-(void)feedDog:(NSString *) foodName{
[_dog eat:foodName];//调用狗的方法吃食物
}
-(void)walkDog{
[_dog run];//调用狗的方法运动
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建狗类的实例对象d
Dog *d = [Dog new];
//狗的实例变量的初始化赋值
d->_color = 0;
d->_weight= 20.0;
//创建人类的实例对象p
Person *p=[Person new];
//给人的实例变量初始化
p->_name=@"刘德华";
p->_dog = d;
//调用对象方法 人给狗喂食
[p feedDog:@"排骨"];
[p feedDog:@"鱼"];
[p walkDog];
}
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2