Java 中的 new 关键字(用法与示例)

2025 年 4 月 28 日 | 阅读 5 分钟

Java 中的 `new` 关键字通过为新对象分配动态内存来创建类实例,并返回对该内存的引用。它还可以用于创建数组对象。当使用 `new` 关键字 时,它会执行类构造函数来初始化 对象。因此,new 关键字在 Java 中很重要,因为它创建了 的实例。

语法

new 关键字的用法

  • 它实例化一个类并调用其构造函数。
  • 它初始化数组并为其分配内存。
  • 它也可用于创建匿名对象。
  • 它可以创建内部类的实例。
  • 当没有传递参数时,它使用默认构造函数。

Java new 关键字示例

创建对象

示例

编译并运行

输出

Invoking Method

解释

在上面的程序中,我们定义了一个名为 Main 的类。在 Main 类 中,我们声明并定义了一个名为 display() 的 方法。为了调用 display() 方法,我们首先在 main() 方法中使用 new 关键字创建了 Main 类的对象。我们使用该对象调用了 display() 方法,该方法在控制台上打印“Invoking Method”。

使用默认构造函数创建对象

示例

编译并运行

输出

Invoking Constructor

解释

在上面的程序中,我们定义了一个名为 Main 的类。在 Main 类中,有一个默认构造函数。构造函数中只有一个打印语句。在 main() 方法中,我们创建了 Main 类的对象,该对象会自动调用默认构造函数,该构造函数在控制台上打印“Invoking Constructor”。

使用带参数的构造函数创建对象

示例

编译并运行

输出

30

解释

在上面的程序中,我们定义了一个名为 Main 的类。在 Main 类中,有一个带参数的构造函数,它有两个参数,a 和 b,类型为整型,还有一个名为 display() 的方法。在 main() 方法中,我们使用 new 关键字创建了 Main 类的对象,并将参数传递给了构造函数。当我们调用 display() 方法时,它在控制台上打印 30。

创建数组

示例

编译并运行

输出

Array length: 3

解释

在上面的程序中,我们在 Main 类中定义了一个类,其中使用 new 关键字创建了一个数组实例(大小为 3)。打印语句访问 arr[] 数组的 length 属性,该属性返回数组的大小(在本例中为 3),并在控制台上打印“Array length: 3”。

创建集合

示例

编译并运行

输出

[Java, C++, Python]

解释

在上面的程序中,我们使用 new 关键字创建了 ArrayList 类的对象并向其中添加了元素。打印语句将元素输出到控制台。

要记住的重要事项

  1. new 关键字用于创建类的实例(对象)。没有它,就无法实例化对象。
  2. 它在堆上为对象分配内存,确保有空间存储其字段和方法。
  3. 当我们使用 new 关键字时,它会自动调用类的构造函数(默认)来初始化对象。
  4. new 关键字返回对新创建对象的引用,该引用可以存储在变量中。
  5. 它还用于为数组(包括原始类型和对象类型)分配内存。
  6. 我们可以使用 new 来创建内部类的实例,这需要一个外部类的实例。
  7. 它允许创建匿名对象。
  8. new 关键字可以与多态引用一起使用,其中引用类型是父类或接口。

Java new 关键字选择题

1. Java 中的 new 关键字做什么?

  1. 修改对象
  2. 删除对象
  3. 创建对象
  4. 使对象可变

答案3)

解释:Java `new` 关键字创建类实例。


2. 关于 new 关键字,以下哪项是正确的?

  1. 它为对象分配内存
  2. 它初始化对象
  3. 1 和 2 都是
  4. 2 和 3 都对

答案:3)

解释:Java `new` 关键字通过为新对象分配内存并返回对该内存的引用来创建类实例。


3. 如果我们不将 new 关键字分配给引用变量,会发生什么?

  1. 对象已创建,但变得无法访问
  2. 对象未创建
  3. 程序抛出错误
  4. 以上都不是

答案:1)

解释:当 new 关键字在未将创建的对象分配给引用变量的情况下使用时,对象仍然被创建,并且为其分配了内存。但是,没有引用指向这个对象;在该语句之后,它变得无法访问。


4. 以下代码将创建多少个对象?

  1. 4
  2. 3
  3. 2
  4. 1

答案:2)

解释:我们知道 new 关键字会创建对象。因此,前两个语句创建了两个对象。第三个语句声明了一个字符串,这会创建一个新对象。第四个语句再次声明了一个字符串 tpointtech,它已在第三个语句中存在。因此,第四个语句不会创建额外的对象。所以总共会创建三个对象。


5. 选择一个创建整数数组的有效语句。

  1. int arr[] = new int();
  2. int arr[] = new int[3];
  3. int arr[] = new int[];
  4. int arr[] = new int(3);

答案:2)

解释:int[] arr[] = new int[3] 是声明整数数组的正确语法。