开发者社区> 异步社区> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

《UML面向对象设计基础》—第1章1.11节习题

简介:
+关注继续查看

本节书摘来自异步社区《UML面向对象设计基础》一书中的第1章1.11节习题,作者【美】Meliir Page-Jones,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.11 习题
UML面向对象设计基础
①(a)重写机器人hominoid-navigation算法,使其更健壮。

(b)你能发现在Grid中定义的操作insertHominoid(hom:Hominoid,location:Square,out insertOK:Boolean)中的问题吗?

② 对象知道自己的句柄吗?如果知道的话,对象如何表示其句柄?

③ 为什么在消息参数中很少使用相同的参数名既作为输入参数又作为输出参数?假设参数表示具有句柄的对象。

④ 在 1.5.3节中,我说过“在纯面向对象环境中,不需要数据。”换言之,一切都是对象(对变量操作的封装),操作本身通过实现操作的变量指向对象。但确实存在一些数据“归根到底”就是数据。因此,任何东西确实都是对象吗?整数和实数及其成千上万的实例也是对象?如何创建它们?

⑤ 实例操作可能涉及一个类变量。然而在纯面向对象环境中,类操作不能直接涉及对象内的实例变量。为什么?

⑥ 执行1.7节的Glider.New,创建了多少对象?

⑦ 面向对象程序是如何进行初始化的?

⑧ 关掉计算机时,对所有的对象会有什么影响?

⑨ 关掉计算机时,对所有的类会有什么影响?

⑩ 你能想出某种语言如C++中有关面向对象的健壮的封装机制的一种简单方法吗?

11.tif Peter Wegner 在一篇顶级论文中,将环境划分为对象结构(object-structured)、基于对象(object-based)、基于类(object-class)或面向对象(object-oriented)几个范畴。第一个范畴只具有封装和状态保持特性;第二个范畴增加了对象标识特性;第三个范畴增加了类的概念;最后一个范畴增加了继承和本章提到的其他特性。判断你目前使用的语言最接近这四个范畴中的哪一种。

12.tif 我在本章中曾提到过Java语言支持单继承但不支持多继承。因为类修饰符extends最多扩展一个其他类。但类内部implements(实现)许多接口。因此,我的说法正确吗?如果你熟悉Java语言,请解释一下Java语言中,继承机制中的extends和implements之间的区别。

13.tif 请你选择一种面向对象编程语言重写机器人伪代码。

14.tif 考察你或你的公司购买的一种厂商宣称为“面向对象”的软件。软件的哪些特性声明厂商是“面向对象”的?你认为厂商的宣称恰当吗?如果是这样,你得益于产品吹捧的哪些面向对象特性?

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《设计模式沉思录》—第2章2.1节基础
从用户的角度来看,无论文件有多大,目录结构有多复杂,文件系统都应该能够对它们进行处理。文件系统不应该对目录结构的广度或深度施加任何限制。从程序员的角度来看,文件结构的表示方法不仅应该容易处理,而且应该容易扩展。
1255 0
《设计模式解析(第2版•修订版)》—第1章 1.7节面向对象程序设计实践
对象对自己行为所负的责任越多,控制程序需要负的责任就越少。封装使对象内部行为的变化对其他对象变得透明了。封装有助于防止不良副作用。
1420 0
《精通自动化测试框架设计》—第1章 1.6节再启航
尽管面临这样或者那样的问题,一些测试团队仍然成功获得了开发团队的信任,建立起了双方每周对话的机制,在周例会上沟通彼此遇到的技术问题,并决定自动化测试任务的优先级。
1794 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载