类的合理设计 补充:结构体和Dog类的set get方法

main.m

#import <Foundation/Foundation.h>

#import "Student.h"

#import "Dog.h"

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

{

Student *s = [Student new];

Dog *dog = [Dog new];

//  s->weight = 60;

//  s->sex = SexWoman;

//  s->favColor = ColorGreen;

//  s->birthday.year = 1995;

//  s->birthday.month = 2;

//  s->birthday.day = 1;

//  [s run];

//  [s eat];

//  [s print];

//  dog->weight = 20;

//  dog->curColor = ColorGreen;

//  [s eatDog];

//  [s playDog];

//  [dog run];

//  [dog eat];


date b = {2001,02,01};

[s setBirthday:b];

[s birthday];


return 0;

}


Student.h

/*

类名:Student

属性:性别,生日,体重,喜欢的颜色,狗(体重,毛的颜色,吃,跑)

方法:吃,跑步,喂狗,遛狗

*/

#impprt <Foundation/Foundation.h>

@class Dog;

typedef enum //枚举

{

SexMan, //枚举常量命名一般以枚举类型的名称开头

SexWoman //枚举每项以逗号隔开,最后一项不写

}Sex;

typedef struct //结构体

{

int year;

int month;

int day;

}Date;

typedef enum

{

ColorBlack,

ColorRed,

ColorGreen

}Color;

@interface Student : NSObject

{

@public

//  Sex sex;

Date birthday;

//  double weight;

//  包括小数点后

//  Color favColor;

Dog *_dog;

}

//  - (void) run;

//  - (void) eat;

//  - (void) print;

//  - (void) eatDog;

//  - (void) playDog;


- (void)setBirthday:(Date)birthday;

- (Date)birthday;


- (void)setDog:(Dog *)dog;

- (Dog *)dog;

@end


Student.m

#import "Student.h"

@implementation Student

//  - (void) run

//  {

//  weight -=1;

//  NSLog(@"学生成功减掉一斤肉");

//  }

//  - (void) eat

//  {

//  weight +=1;

//  NSLog(@"学生长了一斤肉");

//  }

//  - (void) print

//  {

//  NSLog(@"性别=%d,体重=%f,最喜欢的颜色=%d,生日是=%d-%d-%d",sex,weight,favColor,birthday);

//  }

//  - (void) eatDog

//  {

// dog->weight +=1; 面向过程,非面向对象

//  [dog eat];

//  }

//  - (void) playDog

//  {

//  [dog run];

//  }


- (void)setBirthday:(Date)birthday

{

NSLog(@"调用了它的set方法");

_birthday = birthday;

}

- (date)birthday

{

NSLog(@"调用了它的get方法");

return _birthday;

}

;@end


Dog.h

#import <Foundation/Foundation.h>

//狗(体重,毛的颜色,吃,跑)

typedef enum

{

ColorBlack,

ColorRed,

ColorGreen

}Color;

@interface Dog : NSObject

{

@public

double weight;

Color curColor;

}

- (void) run;

- (void) eat;

@end


Dog.m

#import "Dog.h"

@implementation Dog

- (void) run

{

weight -=1;

NSLog(@"狗成功减掉一斤肉");

}

- (void) eat

{

weight +=1;

NSLog(@"狗长了一斤肉");

}

@end


@class A:只调用类

#import "A.h":调用类和方法

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • main.m #import <Foundation/Foundation.h> #import "Student...
    AmberAlbee阅读 3,456评论 0 49
  • 本节学习内容: 1.继承的概念 2.子类重写父类的方法 3.父类指针指向子类对象 4.多态实现 【main.m】 ...
    奔跑的小小鱼阅读 3,477评论 0 0
  • 本章学习类容 1.选择器的概念及使用 2.类别的语法 3.类扩展的语法 创建一个dog类 方法 dog.h #im...
    奔跑的小小鱼阅读 3,430评论 0 0
  • 继承 什么是继承? 继承是指这样一种能力,它可以使用现有类的所有功能,并在无需重新编写原来的类的情下对这些功能进行...
    AmberAlbee阅读 3,671评论 0 50
  • 前天是感恩节,看到朋友劝有很多人在感恩,感恩父母,感恩所有的一切。我不仅也被感染了,也想感恩身边的一切。 首先要感...
    夏晴风阅读 3,818评论 0 0

友情链接更多精彩内容