// 方法一:使用 new 关键字创建对象
public class Example {
public static void main(String[] args) {
// 创建一个 Example 类的实例
Example obj1 = new Example();
System.out.println("使用 new 关键字创建对象: " + obj1);
}
}
// 方法二:使用 Class.forName() 和 newInstance() 方法创建对象(Java 9 及之后推荐使用 getDeclaredConstructor().newInstance())
public class Example {
public static void main(String[] args) throws Exception {
// 使用 Class.forName() 创建 Example 类的实例
Example obj2 = (Example) Class.forName("Example").getDeclaredConstructor().newInstance();
System.out.println("使用 Class.forName() 和 newInstance() 创建对象: " + obj2);
}
}
// 方法三:使用反射中的 Constructor 类创建对象
public class Example {
public static void main(String[] args) throws Exception {
// 获取 Example 类的构造函数,并创建实例
Constructor<Example> constructor = Example.class.getDeclaredConstructor();
Example obj3 = constructor.newInstance();
System.out.println("使用 Constructor 创建对象: " + obj3);
}
}
// 方法四:使用克隆方法创建对象
public class Example implements Cloneable {
public static void main(String[] args) throws CloneNotSupportedException {
// 创建一个 Example 类的实例并克隆它
Example original = new Example();
Example obj4 = (Example) original.clone();
System.out.println("使用 clone() 方法创建对象: " + obj4);
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
// 方法五:使用反序列化创建对象
import java.io.*;
public class Example implements Serializable {
public static void main(String[] args) {
// 创建一个 Example 类的实例并进行序列化和反序列化
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("example.ser"));
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("example.ser"))) {
Example original = new Example();
oos.writeObject(original);
Example obj5 = (Example) ois.readObject();
System.out.println("使用反序列化创建对象: " + obj5);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
new 关键字:这是最常见也是最直接的方式,通过调用类的构造函数来创建对象。Class.forName() 和 newInstance():这种方式通过类名动态加载类并创建实例。注意在 Java 9 及之后推荐使用 getDeclaredConstructor().newInstance()。Constructor 类:通过获取类的构造函数来创建对象,适用于需要动态创建对象的场景。Cloneable 接口并通过 clone() 方法创建对象的副本。上一篇:求素数的java代码
下一篇:javax.websocket
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站