Java 类和对象2025年4月28日 | 阅读 16 分钟 在面向对象编程中,类和对象在编程中起着至关重要的作用。它们是 OOP(面向对象编程)的两个主要支柱。没有类和对象,我们就无法在 Java 中创建程序。因此,在本节中,我们将讨论 Java 中的类和对象。 Java 中的类是什么?类是具有共同属性的一组对象的集合。它是用于创建对象的模板或蓝图。它是一个逻辑实体。它不是物理实体。 Java 类包含 ![]() 1. 字段在类内部声明的、表示由该类创建的对象的状态的变量称为字段,有时也称为实例变量。它们指定将在每个类对象中存储的数据。不同的访问修饰符,如 public、private 和 protected,可以应用于字段,以控制它们的可见性和可用性。 2. 方法方法是在类内部定义的函数,包含该类对象能够执行的操作或行为。这些方法允许外部世界操作和更改对象的状态(字段)。此外,方法可以是 void(即,它们不返回任何内容)或具有不同的访问修饰符。它们也可以返回值。 3. 构造函数构造函数是用于初始化类对象的特殊方法。当使用 new 关键字创建类对象时,会调用它们,其名称与类名相同。构造函数可以初始化对象字段或执行在创建对象时所需的任何其他设置。 4. 块在类中,Java 允许两种不同类型的块:实例块,通常称为初始化块,以及静态块。静态块通常用于静态初始化,仅在类加载到内存时执行一次。实例块可用于初始化实例变量,并在每次创建类对象时执行。 5. 嵌套类和接口Java 允许将类和接口嵌套在其他类和接口内部。嵌套类(可以是静态或非静态)可以访问封闭类的成员(字段、方法)。嵌套接口可用于将相关的常量和方法逻辑分组在一起,因为它们是隐式静态的。 Java 类语法Java 中的对象是什么?对象是具有状态和行为的真实世界实体。换句话说,对象是一个可以触摸和感受到的有形事物,例如汽车或椅子等。银行系统是一个无形对象的例子。每个对象都有一个唯一的标识,通常通过 JVM 内部用于标识的唯一 ID 来实现。 ![]() 对象的特征
例如,一支笔是一个对象。它的名字是 Reynolds;它的颜色是白色,这被称为它的状态。它用于书写,所以书写是它的行为。 对象是类的实例。类是创建对象的模板或蓝图。因此,对象是类的实例(结果)。 对象定义
对象语法Java 中的 new 关键字new 关键字用于在运行时分配内存。所有对象都在堆内存区域中获得内存。 在 Java 中,使用 new 关键字创建类(也称为对象)的实例。new 关键字动态地为该类的对象分配内存,并在后面跟类名和括号(带可选参数)时返回对它的引用。 要阅读更多内容 Java new 关键字 类示例:类中的 main() 方法在 Java 中,可以在类中声明 main() 方法,这通常在演示或基本程序中完成。将 main() 方法定义在类内部,允许程序在不创建单独包含它的类的情况下立即运行。 在此示例中,我们创建了一个 Main 类,它有两个数据成员 id 和 name。我们正在使用 new 关键字创建 Main 类的对象,并打印对象的值。 示例编译并运行输出 0 null 说明 在此 Java 程序中,为 Main 类定义了两个字段:一个用于 id 的 int 类型和一个用于 name 的 string 类型。Main 类本身定义了主方法。new 关键字用于在 main() 方法中创建 Main 类的一个对象 s1。由于未显式初始化,因此将打印字段的默认值,int 为 0,String 为 null。程序最后打印 s1 对象 name 和 id 字段的值。 类示例:类外的 main() 方法在实际开发中,通常将 Java 类组织到不同的文件中,并将 main() 方法放在要执行它的类之外。这种策略提高了代码的可读性、可维护性和可重用性。 在实际开发中,我们创建类并从另一个类中使用它们。这比之前的方法更好。让我们看一个简单的例子,其中另一个类中有一个 main() 方法。 我们可以有多个类在不同的 Java 文件中,或者在单个 Java 文件中。如果在一个 Java 源文件中定义了多个类,那么最好将文件名保存为具有 main() 方法的类名。 示例编译并运行输出 0 null 说明 在上面的 Java 程序中,main() 方法显示在 Student 类之外的另一个类中。Student 类中没有为 name 和 id 这两个字段定义方法。main() 方法随后位于另一个名为 Main 的类中,在该类中使用默认构造函数创建 Student 类型的一个对象 s1。由于未显式初始化字段,因此将 name 和 id 字段写入其默认值,字符串为 null,整数为 0。 在 Java 中初始化对象Java 中初始化对象的以下三种方法
1) 通过引用变量初始化对象初始化对象意味着将数据存储在对象中。让我们看一个简单的例子,其中我们将通过引用变量初始化对象。 示例编译并运行输出 101 Sonoo 说明 在上面的 Java 程序中,有两个类:Student 和 Main。在 student 类中,我们定义了 id 和 name 两个字段。main() 方法是程序的入口点,它在 Main 类中指定。new 关键字用于在 main() 方法中创建 Student 类型的一个对象 s1。接下来,将值 101 和 "Sonoo" 初始化到 s1 的 id 和 name 字段中。 我们还可以创建多个对象并通过引用变量存储信息。 示例编译并运行输出 101 Sonoo 102 Amit 说明 上面的 Java 程序展示了如何在 Main 类中创建和初始化多个 Student 类对象。我们使用 new 关键字创建了 Student 类的对象 s1 和 s2。随后,独立初始化每个对象的 name 和 id 字段。ID 设置为 101,name 设置为 "Sonoo" 用于 S1,而 S2 分别设置为 102 和 "Amit"。 2) 通过方法初始化对象在此示例中,我们创建了 Student 类的两个对象,并通过调用 insertRecord 方法将值初始化到这些对象中。 在这里,我们通过调用 displayInformation() 方法显示对象的状态(数据)。 示例编译并运行输出 111 Karan 222 Aryan 说明 提供的 Java 代码包含两个类:Student 和 Main。Student 类包括 rollno 和 name 作为字段,以及用于初始化和打印相应字段数据的 insertRecord() 和 displayInformation() 方法。在 Main 类的 main() 方法中创建了两个 Student 对象,并调用了它们相应的 insertRecord() 方法来设置它们的 rollno 和 name。 ![]() 正如我们在上图中看到的,对象在堆内存区域中获得内存。引用变量引用在堆内存区域中分配的对象。这里,s1 和 s2 是引用变量,它们引用内存中分配的对象。 3) 通过构造函数初始化对象通过构造函数初始化对象的概念对于 Java 中的面向对象编程至关重要。类中的特殊方法称为构造函数,当使用 new 关键字创建类对象时调用它们。它们通过在字段中输入初始值或执行任何必需的设置过程来初始化对象的状态。构造函数在对象实例化时自动调用,确保在使用对象之前对其进行正确初始化。 如果您是初学者,请跳过此部分,因为我们稍后将学习构造函数。 这是一个演示通过构造函数初始化对象的示例。 示例编译并运行输出 Student ID: 1 Student Name: John Doe Student ID: 2 Student Name: Jane Smith 说明 在此示例中,Student 对象的 id 和 name 字段使用 Student 类定义的构造函数进行初始化,该构造函数接受两个参数:id 和 name。使用此构造函数创建 student1 和 student2 对象后,将使用提供的这些值初始化每个对象的字段。此方法确保对象以正确的初始值创建,从而更轻松地在程序稍后实例化和使用对象。 对象和类示例:Employee让我们看一个维护员工记录的示例。 示例编译并运行输出 101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0 说明 在上面的程序中,Employee 类有三个字段:id、name 和 salary。它还有两个方法:insert(),用于设置这些字段的值,display(),用于打印值。Main 类的 main() 函数创建了三个 Employee 对象(e1、e2 和 e3)。它使用精确的值初始化每个对象的 id、name 和 salary 字段,并对每个对象调用 insert() 方法。然后,调用每个对象的 display() 方法,通过方法调用显示对象初始化和信息显示。每个对象的 id、name 和 salary 值都将打印到控制台。 对象和类示例:Rectangle提供了另一个示例,用于维护 Rectangle 类的记录。 示例编译并运行输出 55 45 说明 此 Java 代码定义了一个 Rectangle 类,其中包含 length 和 width 字段,以及用于插入尺寸和计算面积的方法。在 Main 类的 main() 方法中,实例化了两个 Rectangle 对象,并使用 insert 方法设置了它们的尺寸。 在 Java 中创建对象的不同方法有哪些?Java 中创建对象的以下方法 1. 使用 new 关键字 在 Java 中创建对象的常用方法是使用 new 关键字后跟一个构造函数。例如, 它为对象分配内存并调用其构造函数对其进行初始化。 2. 使用 newInstance() 方法 此方法属于 java.lang.Class 类,用于在运行时动态创建类的新实例。它调用类的无参数构造函数。例如, 3. 使用 clone() 方法 clone() 方法通过执行浅拷贝来创建现有对象的副本。它返回一个新对象,该对象是原始对象的副本。例如, 4. 通过反序列化 可以通过将对象从字节流反序列化来创建对象。我们可以使用 Java 中的 ObjectInputStream 类来实现这一点。将序列化的对象从文件或网络读取,然后调用 readObject() 方法来重新创建对象。 5. 通过工厂方法 工厂方法是类中的静态方法,它们返回类的实例。它们提供了一种在不直接调用构造函数的情况下创建对象的方法,并且可以用于封装对象创建逻辑。例如, 我们将在稍后学习这些创建对象的方法。 ![]() 匿名对象匿名仅仅意味着无名。没有引用的对象称为匿名对象。它只能在创建对象时使用。例如 如果对象只需要使用一次,那么匿名对象是一个不错的选择。例如 通过匿名对象调用方法 通过匿名对象调用方法 让我们看一个 Java 中匿名对象的完整示例。 示例编译并运行输出 Factorial is 120 说明 上面的 Java 程序计算给定数字 n 的阶乘。Main 类有一个 fact() 方法来计算阶乘。之后,控制台打印结果。在 main() 方法中创建匿名 Main 类对象并立即调用其 fact 函数(参数为 5),演示了如何在 Java 中使用匿名对象进行一次性方法调用。 仅通过一种类型创建多个对象我们可以仅通过一种类型创建多个对象,就像我们处理原始类型一样。 初始化原始变量 初始化引用变量 让我们看一个示例。 示例编译并运行输出 55 45 说明 此 Java 程序演示了使用具有 length 和 width 作为其数据成员的 Main 类。类中有用于计算矩形面积和插入尺寸的方法。Main 类的 main() 方法使用逗号分隔的列表在一行中创建了两个 Rectangle 对象(r1 和 r2),这表明了同时实例化同一类型的多个对象的可能性。然后通过调用 insert 方法指定每个对象的尺寸,然后通过调用 calculateArea() 方法计算并打印每个矩形的面积。 真实世界示例:Account文件:TestAccount.java 示例编译并运行输出 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 说明 此 Java 程序中的 Account 类具有存款、取款、查询余额和显示账户详细信息的方法,模仿了简单的银行系统。其他特征包括账号、姓名和金额。在 Main 类的 main() 方法中,创建、初始化并显示了一个 Account 对象 a1,并包含账户信息。接下来,该账户用于存款和取款,并在每次交易后检查余额。 Java 中类与对象区别
Java 中的类和对象选择题1. Java 中类和对象之间的主要区别是什么?
答案:C) 解释:Java 中的类充当创建对象的模板或蓝图。对象是类的实例,具有类定义的属性和行为。 2. 关于 Java 中的实例变量,以下哪项是正确的?
答案:C) 解释:实例变量在类内但任何方法外定义。它们在对象实例化时创建,并且特定于该对象。它们在对象销毁时销毁。 3. 在 Java 中创建对象时,'new' 关键字是如何工作的?
答案:C) 解释:'new' 关键字在 Java 中用于创建新对象。它在堆中为对象分配内存,并通过调用类的构造函数对其进行初始化。 4. 什么是 Java 中的匿名对象,以及它通常在何时使用?
答案:B) 解释:匿名对象是没有分配给任何引用变量的对象。它通常在对象只需要使用一次且以后不需要重用时使用。 5. 关于 Java 中方法调用的哪个说法是正确的?
答案:C) 解释:Java 中的方法定义了对象行为,并且可以在类的实例(对象)上调用以执行操作。方法不一定必须返回值;它们可以是 void。 下一个主题Java 中的方法 |
我们请求您订阅我们的新闻通讯以获取最新更新。