您的位置:首页 > 移动开发 > Objective-C

类的合理设计

2015-11-19 22:55 393 查看
#import <Foundation/Foundation.h>

typedef enum {//枚举
SexMan,
SexWoman
}Sex;

typedef struct {
int year;
int month;
int day;
}Data;

typedef enum {
ColorBlack,
ColorRed,
ColorGreen
}Color;

@interface Dog : NSObject
{
@public
double weight;  //体重
Color curColor;  //毛色
}

- (void)run;
- (void)eat;
@end

@implementation Dog
- (void)eat
{
//每吃一次,体重加1
weight += 1;
NSLog(@"狗吃完这次后的体重是%.2f",weight);
}

- (void)run
{
weight -= 1;
NSLog(@"狗跑完这次后的体重是%.2f",weight);
}
@end
/*
学生
成员变量:性别、生日、体重、最喜欢的颜色、狗(体重、毛色、吃、跑)
方法:吃、跑步、遛狗(让狗跑)、喂狗(让狗吃)、
*/
@interface Student : NSObject
{

@public
Sex sex;  //性别
Data birthday;  //生日
double weight;  //体重(kg)
Color favColor;  //最喜欢的颜色
char *name;

//重点
Dog *dog;//任何OC对象肯定是用指针来指的

}

- (void)eat;
- (void)run;
- (void)print;

- (void)liuDog;
- (void)weiDog;
@end

@implementation Student

- (void)liuDog
{
//让狗跑起来(调用狗的run方法)
[dog run];
}

- (void)weiDog
{
//让狗吃东西(调用狗的eat方法)
[dog eat];
}

- (void)print
{
NSLog(@"性别=%d,喜欢的颜色=%d,姓名=%s,生日=%d-%d-%d",sex,favColor,name,birthday.year,birthday.month,birthday.day);
}

- (void)eat
{
//每吃一次,体重加1
weight += 1;
NSLog(@"学生吃完这次后的体重是%.2f",weight);
}

- (void)run
{
weight -= 1;
NSLog(@"学生跑完这次后的体重是%.2f",weight);
}
@end

int main()
{
Student *s = [Student new];
Dog *sdog = [Dog new];
sdog->curColor = ColorGreen;
sdog->weight = 20;
s->dog = sdog;//对象中又有对象

[s liuDog];
[s weiDog];

s->weight = 50;

//性别
s->sex = SexMan;

//生日
//s->birthday = {2011, 9, 10};错误

Data d ={1993 , 9 , 9};
s->birthday = d;

/*
s->birthday.year = 1993;
s->birthday.month = 9;
s->birthday.day = 9;
*/

//姓名
s->name = "DaShu";

//喜欢的颜色
s->favColor = ColorBlack;
[s eat];
[s eat];

[s run];
[s run];

[s print];

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Objective-C