JAVA 对象创建与对象克隆
在 Java 中,对象创建与对象克隆是非常重要的知识点。
对象创建
Java 中的对象常见的有以下几种创建方式:
- 使用 new 关键字
使用 new 关键字创建对象是最常见的一种方式,通过这种方式创建出来的对象是一个新的对象实例,具有独立的地址空间。例子如下:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// ...
}
public static void main(String[] args) {
Person person = new Person("Tom", 18);
}
- 使用 Class 类中的 forName() 方法
Java 中通过 Class 类的 forName() 方法可以创建一个指定类的对象实例。
public class Person {
private String name;
private int age;
// ...
}
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("Person");
Person person = (Person) clazz.newInstance();
}
- 使用 ClassLoader 方法
Java 中通过 ClassLoader 类的 loadClass() 方法可以创建一个指定类的对象实例。示例代码如下:
public class Person {
private String name;
private int age;
// ...
}
public static void main(String[] args) throws Exception {
ClassLoader classLoader = Person.class.getClassLoader();
Class clazz = classLoader.loadClass("Person");
Person person = (Person) clazz.newInstance();
}
对象克隆
对象克隆是指通过一个已有的对象,创建出一个具有相同属性的新对象。
Java 中有两种方式可以实现对象克隆。
- 实现 Cloneable 接口并重写 clone() 方法
Java 中的 Object 类中的 clone() 方法是一个本地方法,用于创建一个与原始对象具有相同属性的新对象。为了使用 clone() 方法,需要实现 Cloneable 接口,并重写 clone() 方法。
示例代码如下:
public class Person implements Cloneable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
// ...
}
public static void main(String[] args) throws CloneNotSupportedException {
Person person = new Person("Tom", 18);
Person clone = (Person) person.clone();
}
- 实现 Serializable 接口,通过对象序列化与反序列化实现克隆
通过序列化和反序列化实现对象克隆,需要实现 Serializable 接口。示例代码如下:
public class Person implements Serializable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person clone() throws Exception {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(this);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
return (Person) objectInputStream.readObject();
}
// ...
}
public static void main(String[] args) throws Exception {
Person person = new Person("Tom", 18);
Person clone = person.clone();
}
这就是 Java 中对象创建和对象克隆的完整攻略,如有疑问可以提问。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA 对象创建与对象克隆 - Python技术站