对象导论:异常处理 处理错误
自从编程语言问世以来,错误处理就始终是最困难的问题之一。因为设计一个良好的错误处理机制非常困难,所以许多语言直接略去这个问题,将其交个程序库设计者处理,而这些设计者也只是提出了一些不彻底的方法,这些方...
对象导论:对象的创建和生命期
在使用对象时,最关键的问题之一便是他们的生成和销毁方式。每个对象为了生存都需要资源,尤其是内存。当我们不再需要一个对象时,它必须被清理掉,使其占有的资源可以被释放和重用。在相对简单的编程情况下,怎样清...
对象导论:容器(集合)
通常说来,如果不知道在解决某个特定问题时需要多少个对象,或者它们将存活多久,那么就不可能知道如何存储这些对象。如何才能知道需要多少空间来创建这些对象呢?答案是你不可能知道,因为这类信息只有在运行时才能...
对象导论:单根继承结构
在OOP中,自C++面世以来就已变得非常瞩目的一个问题就是,是否所有的类最终都继承自单一的基类。在Java中,答案是yes,这个终极基类的名字就是Object。事实证明。单根继承结构带来了很多好处。在单根继承结构中的所...
对象导论:伴随多态的可互换对象
在处理类型的层次结构时,经常想把一个对象不当作它所属的特定类型来对待,而是将其当做其基类的对象来对待。这使得人们可以编写出不依赖于特定类型的代码。在“几何形”的例子中,方法操作的都是泛化的形状,而不关心...
对象导论:继承
对象这种观念,本身就是十分方便的工具,使得你可以通过概念将数据和功能封装到一起,因此可以对问题空间的观念给出恰当的表示,而不用受制于必须使用底层机器语言。这些概念用关键字class来表示,他们形成了编程语...
对象导论:复用具体实现(组合和继承)
一旦类被创建并被测试完,那么在理想情况下它就应该代表一个有用的代码单元。事实证明,这种复用性并不容易达到我们所希望的那种程度,产生一个可复用的对象设计需要丰富的经验和敏锐的的洞察力。但是一旦你有了这样...
对象导论:被隐藏的具体实现(访问控制)
将程序开发人员按照角色分为类创建者和客户端程序员是大有裨益的。客户端程序员的目标是收集各种用来实现快速应用开发的类。类创建者的目标是构建类,这种类只向客户端程序员暴露必须的部分,而隐藏其他部分。为什么...
对象导论:每个对象都提供服务
将对象想象为“服务提供者”是程序员在试图开发或理解一个程序设计时最好的方法之一。程序本身向用户提供服务,它将通过调用其他对象提供的服务来实现这一目的。你的目标就是去创建(或在现有的代码库中寻找)能够提供...
对象导论:每个对象都有一个接口
所有的对象都是唯一的,但同时也是具有相同特性和行为的对象所归属的类的一部分。这种思想被直接应用于Simula-67(第一个面向对象语言),它在程序中使用基本关键字class来引入新的类型。Simula,是为了开发诸如经典...