什么时候可以不使用 'new' 关键字来创建类的实例?
时间: 2024-10-17 21:11:00 浏览: 4
在某些情况下,你可以不使用 'new' 关键字来创建类的实例,这通常发生在以下几种情况:
1. **构造函数返回值**:如果一个类的构造函数设计成直接返回该类型的实例,而不是隐式地创建一个新的实例,那么可以像操作其他值一样获取它,例如 `return this;`。
```java
public class MyClass {
public static MyClass getInstance() {
return new MyClass();
}
}
MyClass obj = MyClass.getInstance(); // 不用 new
```
2. **静态工厂方法**:通过定义静态工厂方法来创建对象,这个方法内部自行处理实例化过程,不需要用户显式地用 'new'。
```java
public class Singleton {
private static final Singleton INSTANCE = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return INSTANCE;
}
}
Singleton obj = Singleton.getInstance(); // 不用 new
```
3. **数组声明**:当创建固定大小的数组时,可以直接声明并初始化,而不用 'new'。
```java
int[] arr = new int[5]; // 直接声明一个长度为5的整数数组
```
阅读全文