2016 - 2024

感恩一路有你

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

浏览量:3995 时间:2023-04-08 09:56:45 作者:采采

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

原型模式

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

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

浅拷贝

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

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

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

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

深层拷贝

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

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

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

比如:。

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

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

对,它指向对象d,复制后B中会有一个C,这个C也指向对象d,C of A和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)是对象。简单来说。然而,对象是类的实例化。一般来说,不同的对象是通过给类的属性赋予不同的值而生成的。

对象 拷贝 变量

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。