Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建标识变量并在修改变量时克隆_Java_Object_Identifier - Fatal编程技术网

Java 创建标识变量并在修改变量时克隆

Java 创建标识变量并在修改变量时克隆,java,object,identifier,Java,Object,Identifier,我有一个类,该类创建具有许多变量(年份、品牌、颜色、销售(布尔)、描述(字符串)、唯一标识符(int))的汽车 在我的项目的一部分中,我需要创建一个方法来克隆一辆汽车,维护除seld(恢复为seld_默认)description(恢复为DESC_默认)和unique identifier(生成一个新的标识符)之外的所有变量 目前,我的克隆代码如下所示: public Automobile cloner () { Automobile Clone = new Automobile(

我有一个类,该类创建具有许多变量(年份、品牌、颜色、销售(布尔)、描述(字符串)、唯一标识符(int))的汽车

在我的项目的一部分中,我需要创建一个方法来克隆一辆汽车,维护除seld(恢复为seld_默认)description(恢复为DESC_默认)和unique identifier(生成一个新的标识符)之外的所有变量

目前,我的克隆代码如下所示:

public Automobile cloner () {
        Automobile Clone = new Automobile(brand,year,color,a,k,p,DESC_DEFAULT,SOLD_DEFAULT);
        return Clone;     
    }
我看到自己被迫在新实例的()中包含所有变量,否则我会得到一个错误:它看不到任何参数

我的问题是关于识别变量。它需要声明为我的汽车类专用的int,基本上充当计数器,第一辆车的识别号为1,第二辆车的识别号为2,等等。。。如果一辆汽车被克隆,新实例的识别号就会增加1。我将如何在我的克隆方法中做到这一点,我是否必须修改克隆汽车的方式

另外,假设我在一张表中的插槽0和1处存放了汽车,插槽2和3为空,如:

Automobile [] stock = new Automobile [4];
如果我输入这些说明:

Automobile aRandomCar;
  aRandomCar = stock[ 0 ];
  stock[ 3 ] = aRandomCar;
  stock[ 2 ] = stock[ 1 ].cloner();
然后我修改了股票[3]的年份和aRandomCar的颜色。既然这是一个等式,而不是一个新实例(如股票[2]),这是否意味着我改变股票[3]的年份,我也会改变aRandomCar的年份,反之亦然

非常感谢


注意:请参阅我的类中的更多代码部分。

尝试从对象类实现克隆方法并实现可克隆接口。使用
super.clone()
克隆简单字段和手动克隆复合字段


像您的类这样的复合字段不会克隆自身。仅为您的复合字段引用克隆

尝试从对象类实现克隆方法并实现可克隆接口。使用
super.clone()
克隆简单字段和手动克隆复合字段


像您的类这样的复合字段不会克隆自身。只为您的复合字段提供参考克隆

UP!!!!!!!!!!!!向上的