类与对象(六)----用方法克隆对象

克隆对象

使用方法克隆一个对象,并且属性相同。
思路:
1.创建一个类,定义属性(要克隆的对象类型)
2.再创建一个类,定义一个克隆的方法:形参为接受对象,返回值为返回对象类型,方法体创建一个对象并且将接受的对象属性赋值给在方法体中创建的对象
3.在主方法中创建要克隆的对象,并且再创建一个有克隆方法的对象。使用有克隆方法的对象调用方法,并且将返回值赋值给克隆对象名
代码:

public class Method4{
	public static void main(String[] args) {
		Person p = new Person();
		p.name = "jack";
		p.age = 54;
		Mooly m = new Mooly();
		Person p2 = m.copyPerson(p);
		System.out.println(p == p2);
		
		}
	}


class Mooly{
	public Person copyPerson(Person p){//克隆方法

		Person p2 = new Person();
		p2.name = p.name;
		p2.age = p.age;
		return p2;
	}
	
}
class Person{//要被克隆的对象类型
	String name;
	int age;
}

在内存中
1.将各项类加载好
2.开辟main栈实例化Person 名字为p 进行赋值
3.实例化Mooly,调用copyPerson方法并且被main中的p2接收(p2指向方法开辟的空间)
首先将main中的对象p地址给到copy方法中的p,然后在堆中再开辟一个空间(对象)指向copy方法栈中p2,然后根据传递的地址找到p对象依次赋值给copy中的p2,最后返回值是指向p2的地址.接着回到main栈中将返回的地址给main栈中的p2,克隆完成
内存图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值