推广 热搜: 广场  Java  Word  app  营业  微信公众号  北京代理记账  商城  代理记账  商标交易 

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

   2023-04-27 企业服务招财猫70
核心提示:PHP对象的浅复制与深复制的实例详解?原型模式指定要用原型实例创建的对象种类,并通过复制这些原型来创建新对象。原型模式基于深度复制和浅层复制,Java中有两种复制:浅拷贝复制一个对象后,生成一个新对象

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

原型模式

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

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

浅拷贝

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

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

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

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

深层拷贝

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

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

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

比如:。

有一个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)是对象。简单来说。然而,对象是类的实例化。一般来说,不同的对象是通过给类的属性赋予不同的值而生成的。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
合作伙伴
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  冀ICP备2023006999号-8