有人說這樣的是淺克?。篶lass Book implements Cloneable{ private String name; private double price; public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public Book(String name,double price){ this.name=name; this.price=price; } @Override public String toString(){ return name+":"+price; } @Override public Object clone() throws CloneNotSupportedException{ return super.clone(); }}class Student{ private String name; private Book book;}public class CloneTest { public static void main(String[] args) throws CloneNotSupportedException { Book b1 = new Book("luoweideshenlin",26); Book b2 = (Book)b1.clone();//不等價:b2=b1; b2.setName("pingfandeshijie"); b2.setPrice(78); System.out.println(b1.toString()); System.out.println(b2.toString()); System.out.println(b1==b2); }}這個的輸入結果是:luoweideshenlin:26.0pingfandeshijie:78.0false那怎么樣算深克隆呢,
1 回答

cxxyjsj
TA貢獻119條經驗 獲得超22個贊
深復制不僅復制對象本身,也會復制對象的成員變量. 你可以試下Student類默認的克隆方法, 克隆后兩個Studnet對象引用的book對象實際上是同一個.
添加回答
舉報
0/150
提交
取消