Java编程思想:第八章 复用 - 组合与继承解析

1 下载量 63 浏览量 更新于2024-08-31 收藏 77KB PDF 举报
"这篇笔记主要讨论了Java编程思想第五版中的第八章——复用,包括面向过程和面向对象复用的差异,以及两种主要的复用机制:组合和继承。笔记更新于2020年4月22日,旨在帮助读者理解如何在Java中有效地重用代码,同时保持代码的整洁和独立性。" 在面向对象编程(OOP)中,代码复用是其核心特性之一,与面向过程语言如C语言中简单的代码复制不同。在Java中,复用是通过类(Class)的概念实现的,允许我们利用已经过验证和调试的代码,而不是每次都从零开始创建新类。为了实现这一目标,有两个关键的策略:组合和继承。 **组合** 是一种将对象引用嵌入到新类中的方式,这样新类就具有了对原有对象的访问权。在组合中,新类可以拥有一个或多个其他类的对象作为其成员变量,就像`SprinklerSystem`类包含了`WaterSource`对象一样。在示例代码中,`SprinklerSystem`包含四个阀门(`valve1`至`valve4`)、一个整型变量`i`、一个浮点型变量`f`以及一个`WaterSource`对象。这样,`SprinklerSystem`类就可以利用`WaterSource`的功能,而无需直接复制`WaterSource`的代码。 **继承** 是另一种复用方式,它允许一个类(子类)继承另一个类(父类)的属性和方法。子类可以直接使用父类的非私有成员,还可以覆盖或扩展父类的功能。继承提供了多态性,使得代码更具可扩展性和灵活性。不过,继承应当谨慎使用,以避免产生复杂的继承层次结构和不必要的耦合。 在Java中,初始化引用有多种方法,包括构造函数、初始化块(实例或静态)、字段初始化器以及方法中的赋值。在给定的`WaterSource`和`SprinklerSystem`类中,可以看到构造函数的使用,用于初始化对象的属性。 复用是通过组合和继承这两种机制来实现的,它们都基于现有类型构建新的类型,但各有特点和适用场景。组合强调了对象间的关联关系,而继承则强调类型间的层次结构。理解并熟练运用这些概念,对于提升Java编程效率和代码质量至关重要。