Salida del programa Java | conjunto 3

Prediga la salida de los siguientes programas Java:

Ejemplo 1:

Java

// filename: Test.java
 
class Test {
 
    // Declaring and initializing integer variable
    int x = 10;
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating an object of class inside main()
        Test t = new Test();
 
        // Printing the value inside the object by
        // above created object
        System.out.println(t.x);
    }
}
Producción

10

Explicación de salida:

En Java, los miembros se pueden inicializar con la declaración de la clase. Esta inicialización funciona bien cuando el valor de inicialización está disponible y la inicialización se puede poner en una línea (consulte esto para obtener más detalles). 

Ejemplo 2:

Java

// filename: Test.java
 
// Main class
class Test {
 
    // Declaring and initializing variables
    int y = 2;
    int x = y + 2;
 
    // main driver method
    public static void main(String[] args)
    {
 
        // Creating an object of class inside main() method
        Test m = new Test();
 
        // Printing the value of x and y
        // using above object created
        System.out.println("x = " + m.x + ", y = " + m.y);
    }
}
Producción

x = 4, y = 2

Explicación de salida:

Una solución bastante sencilla: como y se inicializa primero con el valor 2, luego x se inicializa como y + 2. Entonces, el valor de x se convierte en 4.

Geek, ¿alguna vez te has preguntado qué sucederá cuando un miembro se inicialice en la declaración de clase y en el constructor? 

Ejemplo 3:

Java

// filename: Test.java
 
// Main clas
public class Test {
    // Declaring and initializing integer with custom value
    int x = 2;
 
    // Constructor of this class
    // Parameterized constructor
    Test(int i) { x = i; }
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating object of class in main()
        Test t = new Test(5);
 
        // Printing the value
        System.out.println("x = " + t.x);
    }
}
Producción

x = 5

Explicación de salida: 

La inicialización con la declaración de clase en Java es como la inicialización usando la Lista de inicializadores en C++. Entonces, en el programa anterior, el valor asignado dentro del constructor sobrescribe el valor anterior de x, que es 2, y x se convierte en 5. 

Ejemplo 4:

Java

// filename: Test2.java
 
// Class 1
// Helper class
class Test1 {
 
    // Constructor of this class
    Test1(int x)
    {
 
        // Print statement whenever this constructor is
        // called
        System.out.println("Constructor called " + x);
    }
}
 
// Class 2
// Class contains an instance of Test1
// Main class
class Test2 {
 
    // Creating instance(object) of class1 in this class
    Test1 t1 = new Test1(10);
 
    // Constructor of this class
    Test2(int i) { t1 = new Test1(i); }
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating instance of this class inside main()
        Test2 t2 = new Test2(5);
    }
}
Producción

Constructor called 10
Constructor called 5

Explicación de salida:

El primer objeto t2 se instancia en el método principal. Como el orden de inicialización de las variables locales viene primero, luego el constructor, primero se asigna a la memoria la variable de instancia (t1), en la clase Test2. En esta línea se crea un nuevo objeto Prueba1, se llama al constructor en la clase Prueba1 y se imprime ‘Constructor llamado 10’. A continuación, se llama al constructor de Prueba2 y nuevamente se crea un nuevo objeto de la clase Prueba1 y se imprime ‘Constructor llamado 5’.
 

Escriba comentarios si encuentra que alguna de las respuestas/explicaciones es incorrecta, o si desea compartir más información sobre los temas discutidos anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *