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); } }
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); } }
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); } }
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); } }
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