首页 > 用户投稿

java实例化对象的方法 PHP对象的浅复制与深复制的实例详解?

php对象的浅复制与深复制的实例详解?

原型模式

指定要用原型实例创建的对象种类,并通过复制这些原型来创建新对象。

原型模式基于深度复制和浅层复制,java中有两种复制:

java实例化对象的方法 PHP对象的浅复制与深复制的实例详解?

浅拷贝

复制一个对象后,生成一个新对象,新对象的所有成员变量(基本类型或引用类型)都包含与原对象相同的信息。

存在具有相同值的对象。如果原始对象的成员变量是基本数据类型,该变量的值将被复制到新对象中。

在内部,如果原对象的成员变量是引用数据类型,则该引用指向的对象不会生成新的成员变量,但是,

新对象中的引用指向与原始对象中的引用相同的对象。

深层拷贝

复制对象后,会生成一个新对象,新对象的基本数据类型变量包含与原始对象相同的值,例如

如果原始对象的成员变量是引用数据类型,在新对象中,这些引用变量将指向复制的新对象,并且

深度复制不是指向原始引用对象,而是复制要复制的对象所引用的所有对象。

比如:。

有一个a对象,复制后产生一个b对象。如果a中有一个i值为4的int变量,那么在b对象中,

inti的值也是4,a对这个int变量的更改不会影响b,如果a中有一个成员变量c是引用类型。

对,它指向对象d,复制后b中会有一个c,这个c也指向对象d,cofa和b的c指向同一个。

对象d,这是一个浅拷贝。如果是深度拷贝,a中的c指向一个d对象,b中的c指向一个新对象。

他们没有。;t指向同一个对象,所以对原始对象中成员变量c所指向的对象d的任何更改都不会

影响新对象。

举个最简单的例子:

a类

公共报

publicintj

}

阿内瓦

浅层拷贝:

aa1a

深层副本:

aa1n

有没有java编程大神?谁能给我详解一下类与对象,有点懵圈?

class就是你随便定义的用来描述你认为可以归为一类的东西,你定义的具体描述语句就是你加到这个类上的属性。比如你觉得你要把一个有长和宽的对象描述成m类,那么m就是一个用户自定义的类,它有两个属性:长和宽。对象是通过给定义的类的所有或部分属性赋值而生成的。比如上面定义的m类,在创建构造函数的时候,你允许长度和宽度来设置它的属性,所以你直接从m得到的k就知道m(10,20)是对象。简单来说。然而,对象是类的实例化。一般来说,不同的对象是通过给类的属性赋予不同的值而生成的。

对象拷贝变量

原文标题:java实例化对象的方法 PHP对象的浅复制与深复制的实例详解?,如若转载,请注明出处:https://www.wmyjt.com/wmy2/872.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「共道号」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。