Cuántos objetos se están creando en este fragmento de código

Nemaly Praveen:

Cuántos objetos se crearán para este código?

class Main {
  int num;
  public static void gacemarks(Main m)
  {
    m.num += 10;
  }
  public static void main(String[] args) {
    Main m1 = new Main();
    Main m2 = m1;
    Main m3 = new Main();
    m2.num = 60;
    gacemarks(m2);
    System.out.println(m2);
  }
}

La respuesta es 2. Pero tengo se creará 3. M1, M2 se refiere a la misma m3 objeto se crea de nuevo y después de la llamada, se genera el objeto m.

Tim Biegeleisen:

En el contexto de su código, los dos únicos objetos que veo que se está creando de forma explícita son las líneas en las que el newaparece operador:

Main m1 = new Main();
Main m3 = new Main();

He aquí un desglose de los cuales está sucediendo en cada línea:

Main m1 = new Main();     // create new Main object 'm1'
Main m2 = m1;             // assign 'm2' to reference 'm1' (no new object)
Main m3 = new Main();     // create new Main object 'm3'
m2.num = 60;              // assign a field in 'm2' (no new object)
gacemarks(m2);            // repeatedly increment the 'm2.num' field (no new object)
System.out.println(m2);   // print 'm2' (no new object)

Supongo que te gusta

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