Estoy teniendo problemas para entender cómo funcionan las referencias a objetos en Java?

Elmer:

La forma en que entendí referencias originalmente fue que eran simplemente las referencias a memoria que sostenían la posición de memoria del objeto real que poseen. El código de abajo y sus confunde salida que para mí, sin embargo. Aquí se puede ver la puesta en práctica de un simple hombre de clase.

Se crea un objeto artificial en la primera línea con la referencia que se llama Pedro. Peter por su propia cuenta es sólo una posición de memoria, ¿verdad? Así que la persona simplemente se debe almacenar el objeto en la posición de memoria que se encuentra en.

Pero cuando le asigno otra referencia hombre a Pedro y después cambiar el nombre de Pedro, la persona no sabe esto y se imprime el nombre de pila. ¿Cómo puede ser esto ya que almacena la referencia de memoria de Peter? ¿No debería ser capaz de seguir los cambios realizados a la misma?

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 saludos Monica C.:

Aquí:

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

El hombre crea un objeto llamado "Pedro".

Man person = peter;

crea otra variable "apuntando" al objeto creado anteriormente.

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

crea otro hombre llamado Leonard, y después los peter"puntos" variables a ese nuevo, segundo objeto.

Nota: personno lo hizo "punto" a peter. Apunta al Hombre "objeto" en la memoria.

Y poner otra "dirección de memoria" en la petervariable no cambia el objeto inicial que ha creado.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=332389&siteId=1
Recomendado
Clasificación