/*面向对象设计把握一个重要的经验:谁拥有数据,谁就对外提供操作这些数据的方法
1.人在黑板上画圆
2.列车司机紧急刹车
3.售货员统计收获小票的金额
4.你把门关上了
5。球从一根绳子的一段移动到了另一端
*/
1.对于这个设计,上面有person , blackborad , circle三个对象,
动词 : 画。
因为画的动作的数据 x,y,randius 是circle拥有的数据,所以 draw()方法应该属于circle对象。。。而不是动作的发出者。。而发出者往往会委托动作承受者
2。 司机发出的刹车动作会委托车本身来完成
3。售货员统计小票的动作会委托小票来完成
4。关门的动作会委托门本身来完成。
5。详解:
/*注意点:球的移动是需要修改球本身的参数,所以方法由球本身来提供,但是他参数的获取是通过委托绳子来完成,所以任何两个事物之间的交换最好使用委托模式
*/
class Ball {
private int currentPos;
private Rope rope;
public Ball(){
rope = new Rope();
}
public void move(){
currentPos = rope.nextPoint(currentPos);
}
}
class Rope {
private int start;
private int end;
public Rope (int start , int end){
this.start = start;
this.end = end;
}
public int nextPoint(int currentPos){
if(currentPos >=end) return end;
else if(currentPos <start)return start;
else return ++currentPos;
}
}
分享到:
相关推荐
- **第10题**: AD - 面向对象设计的原则。 - **第11题**: CD - 面向对象编程的基本特征。 - **第12题**: BC - 面向对象编程中常见的设计模式。 - **第13题**: BC - 面向对象编程中异常处理的重要性。 #### 编程二 -...
吉林大学2005-2006学年面向对象程序设计课程的期末试题内容涉及了C++编程语言的多个方面,包括类的设计、内存管理、多态、友元函数、异常处理、重载运算符和继承等概念。下面将详细解读试卷中涉及的知识点。 首先,...
### Python面向对象编程知识点解析 #### 一、面向对象三大特性及作用 **1. 封装** 封装是面向对象编程中的一个重要概念,它通过隐藏类的内部细节并对外提供公共接口来保护数据的安全性和完整性。封装使得类的使用...
【描述】提到“期末开卷参考题”,暗示我们将探讨一些学生在学习过程中可能遇到的实际问题或考试题目,这些题目可能会涵盖C#面向对象编程的基本原理、类与对象、继承、封装、多态等关键概念。 在C#中,面向对象编程...
面向对象程序设计是C++的核心特性之一,它包括类、对象、封装、继承、多态等概念。在C++中,面向对象编程提供了强大的抽象能力,使得程序员可以更有效地管理和组织代码。 首先,我们来看看一些关于C++面向对象的...
在西南交通大学的面向对象程序设计试题中,我们可以看到两道翻译题。第一道题是翻译关于迈克尔·杰克逊的一段文字。这道题目考察了学生的英语阅读和翻译能力。迈克尔·杰克逊是世界上最著名的人道主义者和慈善家之一...
含有吉林大学C++六次上机练习题的全部答案及多次上机考试题目
这份"浙江大学OOP(面向对象程序设计)历年考题(英文版)"包含了历年的考试题目及答案,是学习和备考的重要资源。 首先,我们要了解OOP的基石——类与对象。类是对象的模板,定义了一组属性(数据成员)和方法...
本资源为C++程序设计教程的面向对象分册,涵盖了面向对象编程的基础知识和实践题目。下面是对资源中提及的知识点的总结和解释: 一、类和对象 * 类(class):在C++中,类是用户定义的数据类型,用于描述一组对象...
"CC++Java笔试题--很多大公司的面试和笔试题目-珍贵"这个压缩包文件很可能包含了这些语言的基础知识、进阶概念以及实际问题的解题策略,这些都是求职者在准备面试和笔试时需要掌握的重点。 C语言是基础,它的特点是...
《UML面向对象建模与设计》这本书由Michael Blaha与James Rumbaugh共同撰写,是面向对象设计领域的重要参考书籍之一。书中通过丰富的案例与实践指导,为读者提供了系统而深入的面向对象建模方法论。本次提供的资料是...
面向对象设计(Object-Oriented Design,OOD)紧接着分析阶段,它关注于如何将分析结果转化为具体的设计模型。在这个阶段,设计师会细化类图,考虑多态(Polymorphism)、抽象(Abstraction)和设计模式的应用。设计...
### 2011年6月面向对象分析与设计试题B卷知识点解析 #### 一、单项选择题解析 **1. 面向对象分析与设计是面向对象软件开发过程中的两个重要阶段,下列活动中,____不属于面向对象分析阶段。** - **A.构建分析...
### C++面向对象程序设计知识点解析 #### 一、单项选择题知识点解析 1. **自动继承的内容** - **选项分析**: - A. **基类中的构造函数**不可被继承。 - B. **基类中的虚析构函数**可以被继承,并且在多态中起...
根据提供的文件标题、描述以及部分无法识别的内容,我们可以聚焦于《C++面向对象程序设计》这本书,特别是由谭浩强编著的第三版,并且关注的是该书第1-14章的课后习题答案。 ### C++面向对象程序设计概述 C++是一...
### vc++6.0面向对象程序设计课后习题解析 #### 第二章习题答案概览 在探讨vc++6.0面向对象程序设计的课后习题时,我们聚焦于第二章的习题答案解析,这不仅帮助学生巩固章节内容,也深入理解面向对象编程的基本...
Java编程面试题集 可以自己学习下练练手
面向对象分析与设计(Object-Oriented Analysis and Design, 简称OOAD)是软件开发过程中的关键步骤,它结合了模型驱动工程(Model-Driven Engineering)与统一建模语言(Unified Modeling Language, UML)等现代...