2016-12-06 4 views
1

変数(年、ブランド、色、...、売り(ブール)、説明(文字列)、一意の識別子(int)を多数持つCarsを作成するクラスがあります。 )。識別変数の作成と変数の変更中にクローン化

私のプロジェクトの一部では、販売された(SOLD_DEFAULTに戻る)説明(DESC_DEFAULTに戻る)と一意の識別子(新しい識別子を生成する)を除くすべての変数を維持する方法を作成する必要があります。今の

、私のクローニングのコードは次のようになります。

public Automobile cloner() { 
     Automobile Clone = new Automobile(brand,year,color,a,k,p,DESC_DEFAULT,SOLD_DEFAULT); 
     return Clone;  
    } 

私は自分自身(のすべての変数を含めることを余儀なく見てきました)、新しいインスタンスのまたは他の私はエラーを取得する:それは引数を見ません。

私の質問は識別変数に向かっています。それは私のAutomobileクラスにはプライベートであるintとして宣言する必要があります。基本的に、最初の車が自動的に識別番号= 1、2番目の車= 2などを持つカウンタとして機能します。新しいインスタンスの番号は1つ増えます。私のクローニング方法でどうすればいいのですか?私はクローンをクローンする方法を変えなければなりませんか?

また、のは、のように私は、スロット2とスロット0と1でテーブルにストックカー、3空を持っているとしましょう:

Automobile [] stock = new Automobile [4]; 

I入力した場合、これらの命令:

Automobile aRandomCar; 
    aRandomCar = stock[ 0 ]; 
    stock[ 3 ] = aRandomCar; 
    stock[ 2 ] = stock[ 1 ].cloner(); 

そして、株[3]の年とaRandomCarの色を修正します。それは平等であり、株式([2]のような)新しいインスタンスではないので、私は株式の年を変えることを意味するでしょうか?私はまたaRandomCarのためにそれを変更します。

ありがとうございました!!!!

P .:次のコードは、Getters, Setters and Constructors in Java - Making a car and stocking itを参照してください。

+0

UP !!!!!!!!!!!! –

答えて

0

Objectクラスからクローンメソッドを実現し、Cloneableインターフェイスを実装しようとします。 super.clone()を使用して、単純なフィールドを複製し、複合フィールドを手動で複製します。

あなたのクラスのような複合フィールドは、自分自身をクローンしません。あなたのための参照クローンのみ複合フィールド

関連する問題