第 5 章 Java 中的对象 Java 中的对象
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
在本章中,我们将深入 Java 的核心,探索其面向对象的。所谓面向对象设计,是指将应用程序分解为若干对象的艺术,这些对象是相互独立的应用程序组件,可以协同工作。其目的是将问题分解成更简单、更易于处理和维护的小问题。多年来,基于对象的设计已经证明了自己的价值,Java 等面向对象的语言为编写应用程序--从小到大--奠定了坚实的基础。Java 从设计之初就是一种面向对象的语言,所有 Java API 和库都是围绕坚实的基于对象的设计模式构建的。
对象设计方法是一个系统或一套规则,用来帮助你将应用程序分解成对象。这通常意味着将现实世界的实体和概念(有时称为问题域)映射到应用程序组件中。各种方法都试图帮助您将应用程序分解为一组可重复使用的对象。这在原则上是好的,但问题是,好的面向对象设计仍然是艺术多于科学。虽然你可以从现成的设计方法中学习,但没有一种方法能在所有情况下都帮到你。事实上,经验是无可替代的。
在这里,我们不会试图把你推向某种特定的方法;有很多书架上都有这方面的书。1相反,我们将为您提供一些常识性的入门提示。
班级
类是 Java 应用程序的构建模块。一个类可以包含方法(函数)、变量、初始化代码,以及我们稍后将讨论的其他类。描述更复杂想法的单个部分的独立类通常捆绑在包中,这有助于您组织更大的项目。(每个类都属于某个包,即使是我们目前看到的简单示例也不例外)。接口可以描述原本不同的类之间的一些特定共性。类可以通过扩展相互关联,也可以通过实现与接口关联。图 5-1举例说明了这一段中的观点。
图 5-1. 类、接口和软件包概述
Object (左上角)是 的基础类,是 Java 中其他所有类的核心。它是 Java 核心包 的一部分。Java 还有一个图形 UI 元素包,名为 。在该包中, 类定义了图形事物(如框架、按钮和画布)的所有底层常用属性。例如, 类 java.lang javax.swing JComponent JLabel 扩展了 JComponent 类。这意味着 继承了 的细节,但增加了标签的特殊属性。您可能已经注意到, 本身也扩展自 ,或者至少,它最终扩展回 。为了简洁起见,我们省略了中间的类和包。JLabel JComponent JComponent Object Object
您还可以定义自己的类和包。例如,右下角的ch05.examples.game包是我们为一个让物理学家扔苹果的简单游戏创建的自定义包。(牛顿会复仇的!)在这个包中,我们有一些类,如Apple 和Field ,它们是我们应用程序的一部分。您还可以看到GamePiece 接口,它将包含所有游戏棋子所需的一些通用元素,并由Apple 、Tree 和Physicist 类实现。(在我们的游戏中,Field 类是显示所有游戏棋子的地方,但它本身并不是游戏棋子。请注意,它没有实现GamePiece 接口)。
本章将更详细地介绍每个概念,并提供更多示例。我们衷心建议您边看示例边尝试,并使用jshell工具(在"尝试 Java "中讨论)来帮助巩固对新主题的理解。
类的声明和实例化
类是创建实例的蓝图, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access