Javaは、誤ってオブジェクトの値を変更します


Javaはオブジェクトマップ、C内のポインタと同様に、ヒープ内の新しい空間、変数名がそのスペースに対応を作成するプロセスです。
列A =新しい文字列( "空間");
列B = A;
AおよびBは、文字列( "空間")の同じ領域を指します。
静的フィールドの最終を変更することはできません文字列は、一度初期化を変更することはできません。
大丈夫、しかし、このクラスの文字列は特別な注意を払う必要があります。
この方法は、参照変数オブジェクトを返すアクセサ書きしないようにしてください必要があります。
Employeeクラス
{
プライベート日hireDay;
...
公共getHireDay日()
{
hireDayを返す//; //エラー
リターン(日)hireDay.clone(); // 正しいが、新しいオブジェクトのコピーを返します
}
}

日付日付= employee.getHireDay(); //従業員は、従業員の一例です

彼らは同じDateオブジェクトを参照するため、変更日はまた、hireDayに従業員を変更することができます。

 

別の例は、次の例である:
パブリック静的ボイドtripleSalary(社員X){
x.raiseSalary(200で);
}
呼び出し
新しい新=(...)を使用ハリー;
tripleSalary(ハリー)。

 

 

おすすめ

転載: www.cnblogs.com/auspice/p/11332049.html