Java之路:对象克隆

对象克隆

对象克隆指的就是将一个对象进行内容的复制,如果要想实现克隆操作,可以使用Object类之中定义的一个方法。

如果要想正常地实现克隆操作,那么对象所在的类必须实现Cloneable接口,但是这个接口里面并没有定义任何的方法,此接口属于标识接口,指的是一种能力的体现。

protected Object clone() throws CloneNotSupportedException;
class Book implements Cloneable {
	private String title;
	private double price;
	public Book(String title, double price) {
		this.title = title;
		this.price = price;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	
	@Override
	protected Object clone() throws CloneNotSupportedException
	{
		return super.clone();
	}
	
	@Override
	public String toString() {
		return "Book[title = " + title + ", price = " + price + "]";
	}
}
public class ObjectClone {
	public static void main(String[] args) throws Exception {
		Book bookA = new Book("Java编程思想", 108.0);
		Book bookB = (Book)bookA.clone();	// 克隆对象
		bookB.setPrice(100.8);
		System.out.println(bookA);
		System.out.println(bookB);
		
	}
}

【结果】
在这里插入图片描述

对象的克隆其实际上就是新建一个内存空间将原有对象中的信息复制过来,如下图所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值