/*自定义类实现“克隆”的步骤如下
* 1.自定义类实现Cloneable接口。这是一个标记性的接口,实现该接口的对象可以实现“自我克隆”,接口里没有定义任何方法
* 2.自定义类实现自己的clone()方法
* 3.实现clone()方法是通过super.clone()方法;调用Object实现的clone()方法来得到该对象的副本,并返回该副本。
*
*
* */
package seven1;
class Address
{
String detail;
public Address(String detail)
{
this.detail=detail;
}
}
//实现Cloneable接口
class User implements Cloneable
{
int age;
Address address;
public User(int age)
{
this.age=age;
address=new Address("广州天河");
//通过调用super.clone()
}
public User clone() throws CloneNotSupportedException
{
return (User)super.clone();
}
}
public class CloneTest {
public static void main(String[] args) throws CloneNotSupportedException
{
// TODO 自动生成的方法存根
User u1=new User(29);
//clone得到u1对象的副本
User u2=u1.clone();
//判断u1,u2是否相等
System.out.println(u1==u2);
//判断u1,u2的address是否相同
System.out.println(u1.address==u2.address);
}
}
* 1.自定义类实现Cloneable接口。这是一个标记性的接口,实现该接口的对象可以实现“自我克隆”,接口里没有定义任何方法
* 2.自定义类实现自己的clone()方法
* 3.实现clone()方法是通过super.clone()方法;调用Object实现的clone()方法来得到该对象的副本,并返回该副本。
*
*
* */
package seven1;
class Address
{
String detail;
public Address(String detail)
{
this.detail=detail;
}
}
//实现Cloneable接口
class User implements Cloneable
{
int age;
Address address;
public User(int age)
{
this.age=age;
address=new Address("广州天河");
//通过调用super.clone()
}
public User clone() throws CloneNotSupportedException
{
return (User)super.clone();
}
}
public class CloneTest {
public static void main(String[] args) throws CloneNotSupportedException
{
// TODO 自动生成的方法存根
User u1=new User(29);
//clone得到u1对象的副本
User u2=u1.clone();
//判断u1,u2是否相等
System.out.println(u1==u2);
//判断u1,u2的address是否相同
System.out.println(u1.address==u2.address);
}
}