利用new()方法实现对象的复制与克隆
发布时间:2023-12-16 09:30:08
在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 String getName() {
return name;
}
public int getAge() {
return age;
}
}
public class Main {
public static void main(String[] args) {
Person person1 = new Person("John", 25);
Person person2 = new Person(person1.getName(), person1.getAge());
System.out.println(person2.getName()); // 输出:John
System.out.println(person2.getAge()); // 输出:25
}
}
在上述例子中,我们首先创建了一个Person类,该类具有name和age属性,以及相应的访问方法。然后,在Main类中,我们创建了一个名为person1的Person对象,并将其名称设为"John",年龄设为25。接下来,我们使用new()方法创建了一个名为person2的新对象,并将person1的名称和年龄复制到person2中。最后,我们打印出person2的名称和年龄,结果与person1相同。
接下来是一个使用new()方法实现对象的克隆的示例代码:
public class Person implements Cloneable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
public class Main {
public static void main(String[] args) throws CloneNotSupportedException {
Person person1 = new Person("John", 25);
Person person2 = (Person) person1.clone();
System.out.println(person2.getName()); // 输出:John
System.out.println(person2.getAge()); // 输出:25
}
}
在上面的例子中,Person类实现了Cloneable接口,并重写了clone()方法。在Main类中,我们首先创建了一个名为Person1的Person对象,并将其名称设为"John",年龄设为25。接下来,我们使用person1的clone()方法创建了一个名为person2的克隆对象。最后,我们打印出person2的名称和年龄,结果与person1相同。
需要注意的是,使用new()方法创建的对象复制不了非基本类型(如String、Integer等)的属性,而使用clone()方法创建的对象可以复制所有属性。此外,使用clone()方法时,必须确保被克隆的对象实现了Cloneable接口,并重写了clone()方法。
