对象Clone

//=================================================
// File Name       :	Clone_demo
//------------------------------------------------------------------------------
// Author          :	Common

//类名:Person__
//属性:
//方法:
class Person__ implements Cloneable{		//必须实现Cloneable接口
	private String name = null;

	public Person__(String name) {
		super();
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	//必须子类覆写clone方法
	public Object clone() throws CloneNotSupportedException{
		return super.clone();		//具体的克隆操作由父类完成
	}

	@Override
	public String toString() {
		return "姓名:"+this.getName();
	}

}

//主类
//Function        : 	Clone_demo
public class Clone_demo {

	public static void main(String[] args) throws CloneNotSupportedException {
		// TODO 自动生成的方法存根
		Person__ p1 = new Person__("张三");
		Person__ p2 = (Person__) p1.clone();
		p2.setName("李四");				//克隆之后修改name的参数
		System.out.println("原始对象:"+p1);
		System.out.println("克隆之后的对象:"+p2);
 	}

}
时间: 2024-10-18 22:26:08

对象Clone的相关文章

克隆对象clone

在PHP中可以根据现有的对象克隆初一个完全一样的对象,克隆以后,原本和副本两个对象完全独立,互不干扰. <?php class person{ private $name; private $sex; private $age; function __construct($name="",$sex="",$age=""){ $this->name=$name; $this->sex=$sex; $this->age=$ag

Object之克隆对象clone 和__clone()函数

在前面的PHP面向对象之对象和引用,"$b=$a"的方式复制对象传递的是对象的地址,而不是传递对象的值(内容),我们可以通过克隆对象来实现对对象的内容和引用的复制 使用传址引用的方式调用对象,实质调用的是同一个对象,有时需要建设立一个对象的副本,改变原来的对象时不希望影响到副本,在PHP中可以根据现在的对象来克隆出一个完全一样的对象,克隆出来的副本和原本两个对象完全独立而互不干扰 在php中使用"clone"关键字来克隆对象 <?php class Perso

java克隆对象clone()的使用方法和作用

转自:997.html">http://www.okrs.cn/blog/news/?997.html 内容摘要 若需改动一个对象,同一时候不想改变调用者的对象.就要制作该对象的一个本地副本.这也是本地副本最常见的一种用途.若决定制作一个本地副本.仅仅需简单地使用clone()方法就可以.Clone是"克隆"的意思,即制作全然一模一样的副本.这种方法在基础类Object中定义成"protected"(受保护)模式. 但在希望克隆的不论什么衍生类中,必

java对象clone

java克隆 为什么需要克隆 我们在很多时候需要使用一个对象去记录另外一个对象的当前状态,对象中可能会有很多属性,如果我们一个一个去设置,不仅不方便,而且效率很低,我们看一个初学者可能遇到的问题 class Person{ String name; int age; public Person() {} public Person(String name, int age) { super(); this.name = name; this.age = age; } @Override publ

Object对象详解(一)之clone

clone方法会返回该实例对象的一个副本,通常情况下x.clone() != x || x.clone().getClass() == x.getClass() || x.clone().equals(x)也为真,但不严格要求,我们可以通过重写该方法来覆盖. protected native Object clone() throws CloneNotSupportedException; 可以看到,clone是一个本地方法,可能会抛出CloneNotSupportedException异常,什

java中传值及引伸深度克隆的思考(说白了Java只能传递对象指针)

java中传值及引伸深度克隆的思考 大家都知道java中没有指针.难道java真的没有指针吗?句柄是什么?变量地址在哪里?没有地址的话简直不可想象! java中内存的分配方式有两种,一种是在堆中分配,一种是在堆栈中分配,所有new出来的对象都是在堆中分配的,函数中参数的传递是在栈中分配的.通常情况下堆的内存可以很大,比如32位操作系统中的虚拟内存都可以被堆所使用(当内存紧张的时候甚至硬盘都可以是堆的存储空间),而堆栈的内存分配是有限的. 这和c++中内存分配差不多(c++中还要有另一种方式用于全

Javascript对象的继承

对象的继承 Javascript主要通过原型链实现继承,原型链的构建是通过将一个类型的实例赋值给另一个构造函数的原型实现的. 由于所有的实例对象共享同一个prototype对象,那么从外界看起来,prototype对象就好像是实例对象的原型,而实例对象则好像"继承"了prototype对象一样.这就是Javascript继承机制的设计思想. 继承方法: (1)原型链继承方法:基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法.继承是通过创建超类型的实例,并将该实例赋给子类型

Javascript之对象的继承

继承是面向对象语言一个非常重要的部分.许多OOP语言都支持接口继承和实现继承两种方式.接口继承:继承方法签名:实现继承:继承实际的方法.在ECMAScript中函数是没有签名的,所以也就无法实现接口继承,只能支持实现继承. 在JavaScript中有大概六种继承方式,它们分别是:原型链继承,借用构造函数继承,组合继承,原型式继承,寄生式继承和寄生组合式继承.下面就是对着六种继承方式的详细介绍. 1.原型链 基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法.在这里还得补充一下,每个构

C#之数据集:DataSet对象

ADO.NET数据访问技术的一个突出的特点就是支持离线访问,而实现这种离线访问技术的核心就是DataSet对象,该对象通过将数据驻留在内存来实现离线访问. DataSet对象概述 DataSet对象由一组DataTable对象组成,这些对象与DataRelation对象互相关联.这些DataSet对象又包含Rows集合,Columns集合,Rows集合由多个DataRow对象组成,Columns集合由多个DataColumn对象组成. 由于DataSet对象很像数据库,所以可以像访问关系型数据库