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

简介: 面向对象编程是基于现实世界的情况进行建模的,对象由多种更小的对象构成。 然而,组合对象只是面向对象编程的一个方面,另一个重要特征是使用类。 类是用于创建对象的模板。使用同一个类创建的每个对象都具有相似的特性。

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

1.3 对象和类

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

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

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

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

使用Java编写网络程序时,您可能创建HighSpeedModem类,它描述了所有计算机调制解调器的特征。这些设备都具备如下特征:

连接到计算机的以太网端口;
发送和接收信息;
与Internet服务器通信。
HighSpeedModem类是调制解调器的抽象概念模型。要在程序中有能够实际操纵的具体东西,必须有对象:必须使用HighSpeedModem类创建HighSpeedModem对象。使用类创建对象的过程叫做实例化(instantiation),这就是对象也被称作实例的原因所在。

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

有些充当无线Internet网关,有些不这样;
有些可用作网络路由器;
它们支持的连接速度各不相同。
虽然有这么多的不同,两个HighSpeedModem对象仍有足够多的共性,使其被视为相关的对象。

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

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

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

CommandButton类还可定义按钮被单击时的行为。

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

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

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

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

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

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

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

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

在Java类库中,一个标准Java类是javax.swing包中的JButton,它提供了上述虚构CommandButton类的所有功能,还有众多其他的功能。在第9章,您将使用这个类来创建对象。

相关文章
|
19天前
|
Java
java8中List对象转另一个List对象
java8中List对象转另一个List对象
36 0
|
2天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
5天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
10 0
|
5天前
|
Java
Java 15 神秘登场:隐藏类解析未知领域
Java 15 神秘登场:隐藏类解析未知领域
10 0
|
5天前
|
存储 Java 编译器
对象的交响曲:深入理解Java面向对象的绝妙之处
对象的交响曲:深入理解Java面向对象的绝妙之处
35 0
对象的交响曲:深入理解Java面向对象的绝妙之处
|
7天前
|
安全 Java
append在Java中是哪个类下的方法
append在Java中是哪个类下的方法
21 9
|
8天前
|
JavaScript Java 测试技术
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
25 0
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
|
8天前
|
存储 安全 Java
java多线程之原子操作类
java多线程之原子操作类
|
10天前
|
Java
Java中的多线程实现:使用Thread类与Runnable接口
【4月更文挑战第8天】本文将详细介绍Java中实现多线程的两种方法:使用Thread类和实现Runnable接口。我们将通过实例代码展示如何创建和管理线程,以及如何处理线程同步问题。最后,我们将比较这两种方法的优缺点,以帮助读者在实际开发中选择合适的多线程实现方式。
19 4
|
11天前
|
Java
在Java中,多态性允许不同类的对象对同一消息做出响应
【4月更文挑战第7天】在Java中,多态性允许不同类的对象对同一消息做出响应
16 2