En un programa Java, las operaciones se pueden realizar en métodos, constructores y bloques de inicialización. Los bloques de inicialización de instancia o IIB se utilizan para inicializar variables de instancia. Sabemos que el bloque de instancia es el método sin nombre en java dentro del cual podemos definir la lógica y poseen ciertas características. La lógica de bloque de instancia es común para todos los objetos y se ejecutará una sola vez para cada objeto durante su creación. Ahora, veamos la ejecución normal de bloques de instancia mediante la creación de objetos.
Demostración 1: ejecución normal del bloque de instancia
Java
// Executing instance block // by creating object. // Class 1 // Helper class class GFG { { // Creation of an instance block System.out.println("Instance block called by creating objects"); } } // Class 2 // Main class class GFGJava { // main driver method public static void main(String[] args) { // Object of 1st kind GFG obj1 = new GFG(); // Object of 2nd kind GFG obj2 = new GFG(); // Object of 3rd kind GFG obj3 = new GFG(); } }
Producción:
Instance block called by creating objects Instance block called by creating objects Instance block called by creating objects
Explicación: el bloque de instancia se ejecuta solo una vez por cada creación de objeto. Aquí se ejecutó para obj1, obj2 y obj3.
Demostración 2: Ejecutar bloque de instancia sin crear un objeto
En la Demostración 1, vimos la ejecución del bloque de instancia mediante la creación de objetos que son obvios, pero existe la idea errónea de que un bloque de instancia no se puede ejecutar sin crear un objeto que no es verdadero. En nuestra próxima demostración, veremos cómo podemos ejecutar un bloque de instancia sin crear un objeto.
Java
// Executing instance // block by creating object. // Class 1 // Helper class class GFG { { // Creation of an instance block System.out.println( "Instance block called by creating objects"); } } // Class 2 // Main class class GFGJava { // main driver method public static void main(String[] args) { // Declaring instance block inside main method { System.out.println( "Instance block inside main method called without creating an object"); } // Object of 1st kind GFG obj1 = new GFG(); // Object of 2nd kind GFG obj2 = new GFG(); // Object of 3rd kind GFG obj3 = new GFG(); } }
Producción:
C:\Users\Bikash\Desktop\GeeksforGeeks Java>javac GFG.java C:\Users\Bikash\Desktop\GeeksforGeeks Java>java GFG Instance block inside main method called without creating an object Instance block called by creating objects Instance block called by creating objects Instance block called by creating objects
Explicación: También es posible ejecutar un bloque de instancia sin crear un objeto. Para ejecutar un bloque de instancia sin crear un objeto, debemos definirlo explícitamente dentro del método principal.
Publicación traducida automáticamente
Artículo escrito por dattabikash505 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA