对象克隆实例

A.java

package second;

public class B {
    public static void main(String[] args){
        C c = new C();
        c.i = 200;
        c.haha();
        System.out.println("==========");
        C cl = (C)c.clone();
        cl.i = 500;
        cl.haha();
        c.haha();
    }
}

B.java

package second;

class C implements Cloneable{ //实现克隆接口
    public int i = 100;
    void haha() {
        System.out.println(i);
    }
    public Object clone(){
        C handler = null;
        try{
            handler = (C)super.clone();
        }catch(CloneNotSupportedException e){
            e.printStackTrace();
        }
        return handler;
    }
}

结果:

200
==========
500
200

对象克隆实例

时间: 2024-09-28 19:41:13

对象克隆实例的相关文章

C#克隆实例详解

public AtmDataBase DeepClone() { MemoryStream ms = new MemoryStream(); BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(ms, this); ms.Position = 0; return bf.Deserialize(ms) as AtmDataBase; } 上面是C# 类的深度Clone. C# 支持两种类型:“值类型”和“引用类型”. 值类型(Value

Java提高篇——对象克隆(复制)

阅读目录 为什么要克隆?如何实现克隆浅克隆和深克隆解决多层克隆问题总结 假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况. 但是如果你复制的是一个对象,情况就有些复杂了. 假设说我是一个beginner,我会这样写: class Student { private int number; pu

对象引用与对象克隆

对象克隆就是在原先对象的基础上,再复制一份,克隆的属性与原先的一模一样,但是是两个对象,之后对这两个对象的任何操作都不会影响到对方.要想将某个对象克隆,必须实现Cloneable接口,然后还需要复写Object类的clone方法. 对象引用其实是多个索引对同一个对象的引用,不管谁改变了对象的属性,对象都会改变,其他索引再访问时,属性已经变了 像函数式编程,对象的操作都是无副作用的,不会改变对象的状态,类似于对象克隆,就是把对象再复制一份,原先的对象不动,只需要使用复制的那个对象即可.而原始的ja

已有实例 Oracle 下新增实例(2)通过dbca克隆实例

oracle11g通过dbca克隆实例:1.建模dbca -silent(静默方式) -createCloneTemplate(使用现有数据库创建克隆模板) -sourceDB(目标数据源) -templateName(模板名称)例:dbca -silent -createCloneTemplate -sourceDB satetest -templateName satedev 2.拷贝模板(两边环境需要一致,安装路径不用)将模板文件拷贝至目标主机的模板目录下路径:$ORACLE_HOME/a

Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨

Java对象克隆(Clone)及Cloneable接口.Serializable接口的深入探讨 Part I 没啥好说的,直接开始Part II吧. Part II 谈到了对象的克隆,就不得不说为什么要对对象进行克隆.Java中所有的对象都是保存在堆中,而堆是供全局共享的.也就是说,如果同一个Java程序的不同方法,只要能拿到某个对象的引用,引用者就可以随意的修改对象的内部数据(前提是这个对象的内部数据通过get/set方法曝露出来).有的时候,我们编写的代码想让调用者只获得该对象的一个拷贝(也

spring接收对象数组实例

JS var param= new Array(); var one= new Object; one.id = '1'; one.name= 'simba1'; param.push(one); var two= new Object; two.id = '2'; two.name= 'simba2'; param.push(two); $.ajax({ async : false, cache : false, type : 'POST', dataType:"json", con

HttpContext.Current.Session[strName]未将对象引用设置到对象的实例

项目开发是在4.5.1上,不知道为啥客户提供的服务器上安装的是4.5,差别不大也没去升级,然后部署MVC的时候web.config报错 <system.web> <compilation debug="true" targetFramework="4.5.1"/> <httpRuntime targetFramework="4.5.1"/> </system.web> 然后也没在意就把这段给删掉了,

Javascript构造函数、原型对象、实例的关系与区别

构造函数与普通函数的唯一区别,就在于调用方式.任何函数通过new形式调用,就都是构造函数. 原型对象,只要创建了一个函数,那么一定会为这个函数创建一个prototype属性.而这个属性指向的就是原型对象. 实例,是new构造函数之后的结果.它会包含一个[[prototype]]属性(该属性无法直接访问),该属性指向原型对象. function Person(){ } Person.prototype.name = "Nicholas"; Person.prototype.age = 2

Javascript 面向对象一:封装数据个方法,从原型对象生成实例

一. 生成对象的原始模式 假定我们把猫看成一个对象,它有"名字"和"颜色"两个属性. var Cat = { name : '', color : '' } 现在,我们需要根据这个原型对象的规格(schema),生成两个实例对象. var cat1 = {}; // 创建一个空对象 cat1.name = "大毛"; // 按照原型对象的属性赋值 cat1.color = "黄色"; var cat2 = {}; cat2.n