ad

阅读《Java核心技术》卷1 基础知识_更了解Java的奥妙_4.1 面向对象程序设计概述

admin 86 2023-10-25

【摘要】 本书摘自《Java核心技术》一书中第4章,第1节,作者是来自美国的凯·S.霍斯特曼(Cay S.Horstmann),由林琪、苏钰涵等译。

4.1 面向对象程序设计概述

面向对象程序设计 (object-oriented programming,OOP)是当今主流的程序设计范型, 它取代了20世纪70年代的“结构化”或过程式编程技术。由于Java是面向对象的,所以你 必须熟悉 OOP 才能够很好地使用Java。

阅读《Java核心技术》卷1 基础知识_更了解Java的奥妙_4.1 面向对象程序设计概述

面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实 现部分。程序中的很多对象来自标准库,还有一些是自定义的。究竟是自己构造对象,还是 从外界购买对象完全取决于开发项目的预算和时间。但是,从根本上说,只要对象能够满足 要求,就不必关心其功能到底是如何实现的。

传统的结构化程序设计通过设计一系列的过程(即算法)来求解问题。 一旦确定了这些 过程,就要开始考虑存储数据的适当方式。这就是Pascal语言的设计者Niklaus Wirth 将其著 作命名为《算法+数据结构=程序》 (Algorithms +Data Structures = Programs, Prentice Hall, 1975)的原因。需要注意的是,在Wirth 的这个书名中,算法是第一位的,数据结构是第二 位的,这就明确地表述了程序员的工作方式。首先要确定如何操作数据,然后再决定如何组织数据的结构,以便于操作数据。而OOP 却调换了这个次序,将数据放在第一位,然后再考虑操作数据的算法。

对于一些规模较小的问题,将其分解为 过程的开发方式比较理想。面向对象更加 适合解决规模较大的问题。要想实现一个 简单的Web 浏览器可能需要大约2000个过 程,这些过程可能需要对一组全局数据进行 操作。采用面向对象的设计风格,可能只 需要大约100个类,每个类平均包含20个 方法(如图4-1所示)。后者更易于程序员 掌握,也容易找到bug。 假设给定对象的数 据出错了,在访问这个数据项的20个方法 中查找错误要比在2000个过程中查找容易 得多。

4.1.1 类

类 (class)是构造对象的模板或蓝图。我们可以将类想象成制作小甜饼的模具,将对象 想象为小甜饼。由类构造 (construct)对象的过程称为创建类的实例 (instance)。

正如前面所看到的,用Java编写的所有代码都位于某个类里面。标准Java库提供了几 千个类,可用于各种目的,如用户界面设计、日期、日历和网络编程。尽管如此,在Java中 还是需要创建一些自己的类,以便描述你的应用程序所对应的问题领域中的对象。

封装 (encapsulation, 有时称为数据隐藏)是处理对象的一个重要概念。从形式上看,封 装就是将数据和行为组合在一个包中,并对对象的使用者隐藏具体的实现方式。对象中的数 据称为实例字段 (instance field), 操作数据的过程称为方法 (method)。 作为一个类的实例, 特定对象都有一组特定的实例字段值。这些值的集合就是这个对象的当前状态 (state)。无论 何时,只要在对象上调用一个方法,它的状态就有可能发生改变。

实现封装的关键在于,绝对不能让类中的方法直接访问其他类的实例字段。程序只能通 过对象的方法与对象数据进行交互。封装给对象赋予了“黑盒”特征,这是提高重用性和可 靠性的关键。这意味着一个类可以完全改变存储数据的方式,只要仍旧使用同样的方法操作 数据,其他对象就不会知道也不用关心这个类所发生的变化。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:阅读《Java核心技术》卷1 基础知识_更了解Java的奥妙_3.6.2 拼接
下一篇:阅读《Java核心技术》卷1 基础知识_更了解Java的奥妙_4.6 对象构造
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×