MOSAD_HW1_REPORT
介绍
个人作业1-创建第一个XCode项目、面向对象与Objective-C语法学习
开发环境
- Mac OS
- Objective-C
- Xcode
任务
张三衣柜里有N(N>3)件上衣:白色T恤…M(M>4)条裤子:灰色沙滩裤…你需要帮张三在未来的一周内挑选搭配。(你需要自己定义N、M取值)
要求:
-
上衣未来两天内不可重复穿着,裤子未来一天内不可重复穿着。
-
不同颜色搭配可获得不同分数。例如
上衣 裤子 得分 白色 灰色、蓝色、白色… 20、10、30… 你需要自行定义颜色搭配分数。
-
需要用到多态。
-
输出程序设计和运行过程中,相关设计体现的oo特性(数据隐秘性、封装性、继承、多态)。
验收要点:
- 输出一周内每天张三的随机搭配,包括衣物的关键属性、搭配分数。
- 输出哪一天搭配分数最高及搭配是什么。
- 类的设计与封装。
- 类与类之间的继承关系与多态的体现。
项目设计
令 N=4, M=5, 即假设张三衣柜里有4件上衣:白色T恤、红色T恤、橙色T恤、黄色T恤;5条裤子:白色沙滩裤、绿色沙滩裤、蓝色沙滩裤、灰色沙滩裤、粉色沙滩裤。
-
不同颜色搭配可获得不同分数。
上衣 裤子 得分 白色 白色、绿色、蓝色、灰色、粉色 5、10、15、20、25 红色 白色、绿色、蓝色、灰色、粉色 30、35、40、45、50 橙色 白色、绿色、蓝色、灰色、粉色 55、60、65、70、75 黄色 白色、绿色、蓝色、灰色、粉色 80、85、90、95、99
代码设计
- 父类
@interface Clothes : NSObject{
NSString *color;
NSInteger counter; //计数器,记录下衣物剩下冷却时间
}
// 初始化衣服颜色和计数器
- (id) init: (NSString *) colour;
// 获取私有变量color
- (NSString *) getColor;
// 设置冷却时间
- (void) setCounter;
// 获取私有变量counter
- (NSInteger) getCounter;
- (void) calCounter; //计算剩余冷却时间
-
子类TopClothes
变量全都继承自父类。
// 设置上衣冷却时间为3(今天、明天、后天)
- (void) setCounter;
-
子类Trousers
变量全都继承自父类。
// 设置裤子冷却时间为2(今天、明天)
- (void) setCounter;
运行
经过多次测试,输出结果符合项目设计的预期,未发现任何问题。现将其中三次的测试结果展示出来。
- 测试1
- 测试2
- 测试3
总结
本次实验在设计时体现了比较明显的OO特性(数据隐秘性、封装性、继承、多态)。
-
数据隐秘性及封装性
成员变量都是私有变量,想要修改和获取变量都必须通过成员函数才能实现。
-
继承
TopClothes
和Trousers
都继承Clothes
。 -
多态
函数
- (void) setCounter;
体现了多态。