私は、オブジェクト参照がJavaでどのように機能するか悩みの理解を持っていますか?

エルマー:

私は元々の参照を理解方法は、彼らが保持する実際のオブジェクトのメモリ位置に保持され、単にメモリ参照があったことでした。以下のコードと私のために、しかしそのその出力混乱させる。ここでは、単純なクラスの男の実装を見ることができます。

私はピーターと呼ばれて参照して、最初の行にマンオブジェクトを作成します。独自にピーターは右、ちょうどメモリロケーションのですか?だから、人はちょうどそれがであるメモリ位置にオブジェクトを格納する必要があります。

私はピーターに別の男の参照を代入し、後でピーターの名前を変更する場合でも、人はこれを知っているし、最初の名前を出力しません。それはピーターのためのメモリ参照を格納するのでこれはどのようにすることができますか?それに加えられた変更を追跡することはできませんか。

public class Testing {

  public static void main(String[] args) {
    Man peter = new Man("brown", 182, 78000, "Peter");
    Man person = peter;
    peter = new Man("brown", 182, 78000, "Leonard");
    System.out.println(person.name);
  }
}

class Man {

   String hairColor;
   int height;
   double salary;
   String name;

   public Man()
   {
     hairColor = "brown";
     height = 180;
     salary = 50500.5;
     name = "John";
   }
   public Man(String hair, int high, double pay, String nam)
   {
        this.height = high;
        this.hairColor = hair;
        this.salary = pay;
        this.name = nam;
   }
}
GhostCat敬礼モニカC.:

ここに:

Man peter = new Man("brown", 182, 78000, "Peter");

男の作成オブジェクト「ピーター」という名前を。

Man person = peter;

上記で作成したオブジェクトを「ポインティング」別の変数を作成します。

peter = new Man("brown", 182, 78000, "Leonard");

作成し、別のレナードという男、そしてその後peter、新しい、第二の目的に変数「ポイント」。

注:personしなかった「ポイント」peterそれは人間を指して、「オブジェクト」メモリに。

そして、置く別の 「メモリー・アドレスを」peter、変数は、あなたが作成した最初のオブジェクトを変更しません。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=332386&siteId=1
おすすめ