类的合理设计

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------



  类的合理的设计



#import <Foundation/Foundation.h>

//定义性别的枚举成员变量

typedef enum{

    SexMan,

    SexWomen

} Sex;


//定义生日的结构体成员变量

typedef struct{

    int year;

    int month;

    int day;

} Data;


//定义颜色的枚举成员变量

typedef enum{

    ColorBlack,

    ColorRed,

    ColorGreen

} Color;


/*

 学生

 成员变量:性别、生日、体重、最喜欢的颜色、狗(体重、毛色,吃、跑)

 方法:吃、跑步、遛狗(让狗跑)、喂狗(让狗吃)

 */


//定义Dog

@interface Dog : NSObject

{//定义声明

    @public

    double weight;

    Color curColor;

    

}

//定义方法

- (void)eat;

- (void)run;

@end

//定义类的实现

@implementation Dog


- (void)run

{

    weight -= 1;

    NSLog(@"狗跑完这次的体重是%.2f",weight);

}


-(void)eat

{

    weight +=1;

    NSLog(@"狗吃完这次后的体重是%.2f",weight);

}


@end

//定义Student

@interface Student : NSObject

{//类的声明

    @public

    Sex sex;

    Data birthday;

    double weight;

    Color fvaColor;

    char *name;

    

    //狗的声明

    Dog *dog;

    

    

}

//定义类的方法

- (void)eat;

- (void)run;

- (void)print;

- (void)liuDog;

- (void)weiDog;

@end


//定义Student类的实现

@implementation Student

- (void)weiDog

{

    [dog eat];

}


- (void)liuDog

{

     [dog run];

}


- (void)print

{

    NSLog(@"学生的性别是 %d, 喜欢的颜色是 %d, 姓名是%s,生日是%d-%d-%d",sex,fvaColor,name,birthday.year,birthday.month,birthday.day);

}


- (void)run

{

    weight -= 1;

    NSLog(@"学生跑完这次的体重是%.2f",weight);

}


- (void)eat

{

    weight += 1;

    NSLog(@"学生吃完这次后的体重是%.2f",weight);

}

@end

int main(int argc, const char * argv[]) {


    // 定义一个Student类的指针指向一个新的对象

    Student *s = [Student new];

    //定义一个Dog类的指针指向一个新的对象

    Dog *g = [Dog new];

    

    g -> weight = 20;

    g ->curColor = ColorRed;

    

    s ->dog = g;

     //调用weiDog方法

    [s weiDog];

    //调用liuDog方法

    [s liuDog];

  

    return 0;

}


void test(){

    // 定义一个Student类的指针指向一个新的对象

    Student *s = [Student new];


    s -> sex = SexWomen;

    s -> fvaColor = ColorRed;

    s -> name = "lynn";

    //定义一个结构体变量赋值给结构体d

    Data d = {1990,1,26};

    //结构体不可以直接将值传递给s

    s -> birthday = d;

    //调用printtfangfa

    [s print];

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值