《21天学通Java(第6版)》—— 1.3 对象和类

简介: 面向对象编程是基于现实世界的情况进行建模的,对象由多种更小的对象构成。

本节书摘来异步社区《21天学通Java(第6版)》一书中的第1章,第1.3节,作者:【美】Rogers Cadenhead,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 对象和类

21天学通Java(第6版)
面向对象编程是基于现实世界的情况进行建模的,对象由多种更小的对象构成。

然而,组合对象只是面向对象编程的一个方面,另一个重要特征是使用类。

类是用于创建对象的模板。使用同一个类创建的每个对象都具有相似的特性。

类包含一组特定对象的所有特性。使用面向对象语言编写程序时,并不定义各个对象,而是定义用于创建这些对象的类。

使用Java编写网络程序时,您可能创建Modem类,它描述了所有计算机调制解调器的特征,其中一些常见的特征有:

  • 连接到计算机的串行端口;
  • 发送和接收信息;
  • 拨叫电话号码。

Modem类是调制解调器的抽象概念模型。要在程序中有能够实际操纵的具体东西,必须有对象:必须使用Modem类创建Modem对象。使用类创建对象的过程叫做实例化(instantiation),这就是对象也被称作实例的原因所在。

在程序中,可使用Modem类创建很多不同的Modem对象,其中每个对象都可以有不同的特征,如:

有些调整解调器是内置的,而有些是外置的;

有些使用COM1端口,有些使用COM2端口;

有些有差错控制功能,有些没有。

虽然有这么多的不同,两个Modem对象仍有足够多的共性,使其被视为相关的对象。图1.1显示了Modem类及使用该模板创建的几个对象。

f3a34a1b1567d538d5fad1a46c7a8d726cacfcd4

这里还有一个例子:使用Java可以创建一个类来表示所有的命令按钮—可单击的矩形框,出现在窗口、对话框和程序图形用户界面的其他部分。

开发CommandButton类时,可以定义如下特征:

  • 显示在按钮上的文本;
  • 按钮的大小;
  • 按钮的外观,如是否有三维阴影效果。

CommandButton类还可以定义按钮的行为,如:

  • 按钮需要单击还是双击;
  • 是否完全忽略鼠标单击;
  • 被单击后执行什么操作。

定义CommandButton类后,就可以创建按钮实例了,即CommandButton对象。这些对象都具有类定义的按钮的基本特征,但根据需要,每个对象都可以有不同的外观和行为。

通过创建CommandButton类,可避免为程序中要使用的每个命令按钮重写这些代码。此外,如果需要的话,还可以重用该CommandButton类来创建不同类型的按钮,无论是在当前程序中还是在其他程序中。

编写Java程序时,您实际上设计和构建了一组类。程序运行时,将根据需要使用这些类来创建对象,并使用它们。作为Java程序员,您的任务是创建一组合适的类,以完成程序要完成的任务。

幸运的是,不必每次从头开始。Java语言包含Java类库,其中的类超过3900个,实现了您所需的大部分基本功能。这些类随诸如JDK等开发工具一起被安装。

当您谈论如何使用Java语言时,实际谈论的是如何使用该类库以及Java定义的标准关键字和运算符。

类库处理很多任务,如数学函数、文本处理、图形、用户交互以及网络功能等。使用这些类与使用您自己创建的Java类没有什么不同。

对于复杂的Java程序,可能需要创建一整套新类,这些类可组成独立的类库,以便在其他程序中使用。

重用是面向对象编程的基本优点之一。

相关文章
|
20小时前
|
Java 程序员
Java中的多线程编程:理解并应用Thread类和Runnable接口
【5月更文挑战第28天】在Java中,多线程编程是一个重要的概念,它允许同时执行多个任务。本文将深入探讨Java的多线程编程,包括Thread类和Runnable接口的使用,以及如何在实际项目中应用这些知识。我们将通过实例来理解这些概念,并讨论多线程编程的优点和可能的挑战。
|
1天前
|
存储 Java 编译器
『Java』类和对象
『Java』类和对象
|
1天前
|
Java Linux API
Java多线程基础-4:详解Thread类及其基本用法 (一)
Java 中的 `Thread` 类是用来管理线程的,每个线程都是通过 `Thread` 类的对象来描述。
16 0
|
1天前
|
Java 编译器
<Java> 类和对象专题大汇总.(学不会包退)
<Java> 类和对象专题大汇总
11 0
|
2天前
|
安全 Java 索引
Java字符串类详解
Java字符串类详解
9 1
|
2天前
|
Java 编译器
Java初识泛型 | 如何通过泛型类/泛型方法实现求数组元素最大值?
这是一个关于如何使用泛型在Java中找到数组中最大值的问题。
16 3
|
2天前
|
Java 容器
Java集合类ArrayList应用 | 二维数组的集合类表示与杨辉三角实现
这是一个关于LeetCode第118题“杨辉三角”的问题解答摘要。题目要求生成一个杨辉三角的前n行,其中每一行都是由前一行的元素按规则生成的。杨辉三角的规律是:每一行的第一个和最后一个数是1,其他数是其上方两数之和。
17 4
|
2天前
|
Java
Java初识泛型 | 如何通过泛型类/泛型方法获取任意类型的三个数的最大值?
本文介绍了如何使用Java中的泛型来实现一个可以比较任意数值类型最大值的功能。。
15 2
|
2天前
|
Java
Java集合类ArrayList应用 | 如何在字符串s1中删除有在字符串s2出现的字符?
这是一个关于Java编程面试题的摘要,题目要求从字符串s1中删除s2中存在的字符。解题思路包括使用ArrayList或StringBuilder实现。ArrayList实现时,遍历s1,如果字符不在s2中,则添加到ArrayList;StringBuilder实现有两种方法,一是新建StringBuilder并追加s1,然后遍历删除s2中的字符,二是直接在原地修改s1的StringBuilder对象。代码示例中展示了这些方法。
20 3
|
2天前
|
存储 算法 Java
滚雪球学Java(42):探索对象的奥秘:解析Java中的Object类
【5月更文挑战第17天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
14 2
滚雪球学Java(42):探索对象的奥秘:解析Java中的Object类