- #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;
- }
复制代码 |
|