package began;
//克隆
public class text{
public static void main(String[] args) {
Per q1 = new Per();
//q1给q2
Per q2=q1;//q1赋值给q2
q1.age=80;//q2指向的是q1,不是q1中age=默认值0的地址
System.out.println("q2的age="+q2.age);
System.out.println("===============");
Per p=new Per();//创建调用Per类,创建Per实例对象p
mySwap kk=new mySwap();//创建调用mySwap类,创建mySwap实例对象kk
Per pp2=kk.copyPer(p);//调用方法,使用return(p2)创造的空间给pp2赋值
//为什么这里是kk.copyPer(p)而不是kk,是因为kk是mySwap,pp2是per类型
//或者是写成Per pp2=new mySwap().copyPer(p);
pp2.age=100;
System.out.println("p的属性 age="+p.age+" 名字="+p.name);
System.out.println("pp2的属性 age="+pp2.age+" 名字="+pp2.name);
//查看是否为同一个对象
System.out.println(p==pp2);
}
}
class Per{
int age;
String name;
boolean isPass;
}
class mySwap{
public Per copyPer(Per p){ //创建一个Per类型的copyPer
Per p2=new Per();//调用Per
p2.name=p.name;//把传入的Per对象p的name赋给p2
p2.age=p.age;//把传入的Per对象p的age赋给p2
System.out.println("myswap方法内:p2的属性 age="+p2.age+" 名字="+p2.name);
return p2;
}
}
java基础之克隆
于 2024-09-07 14:18:59 首次发布