对象的拷贝有几种方法PHP对象的浅复制与深复制的实例详解?-创新互联

PHP对象的浅复制与深复制的实例详解?原型模式对象的拷贝有几种方法 PHP对象
的浅复制与深复制的实例详解?

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

成都创新互联公司从2013年创立,先为景东等服务建站,景东等地企业,进行企业商务咨询服务。为景东企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

原型模式基于深度复制和浅层复制。在Java中,有两种拷贝:

shallowcopy

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

如果原始对象的成员变量是基本数据类型,则此变量的值将复制到新对象。如果原始对象的成员变量是引用数据类型,则此引用指向的对象将不会生成新的引用,而是

新对象中的引用和原始对象的引用指向同一对象。

深度复制

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

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

不再指向原始引用对象。深度复制将复制被复制对象引用的所有对象。

例如:

有一个对象a,它被复制以生成对象B。如果对象a中有一个int类型变量I的值为4,则对象B中的int值也是4。将a改为int类型变量不会影响B。如果a中有一个引用类型为

的成员变量C,它将指向对象D。复制后,B中也会有一个C,它也指向对象D,a的C和B的C指向同一个

对象D,这是浅层复制。如果是深度复制,a中的C指向一个D对象,B中的C指向一个新对象

,它们不会指向同一个对象。这样,对原始对象中成员变量C指向的对象D所做的任何更改都不会影响新对象。

举一个最简单的例子:

classA{

publicinti

publicintj

}

AA=newa()

浅拷贝:

Aa1=a

深拷贝:

Aa1=newa()

A1。I=A.I

A1。J=A.J

感觉如下:

浅拷贝只复制对象本身

深拷贝复制对象中引用的对象并继续复制。

你是怎么样深入学习一门编程语言的?

编程语言并不神秘。

钥匙与您要做的事情有关。建议我们首先明确自己的需求和在这一领域更合适的语言。

例如,对于硬件驱动程序,C和C可能适用于开发网站,如Java、python、PHP、ruby、go、人工智能、数据分析、python和r。

任何东西都没有绝对性。任何一种需要都是用逻辑来处理某事或等待某事。

有时间触发器和事件触发器。


分享名称:对象的拷贝有几种方法PHP对象的浅复制与深复制的实例详解?-创新互联
文章URL:http://azwzsj.com/article/hieds.html