Google
[IT] Java - Esempio di auto-inizializzazione di una classe

Java - Esempio di auto-inizializzazione di una classe


L'inizializzazione avviene la prima volta che la classe viene usata. La sintassi da usare e' diversa a seconda che si usino variabili e metodi statici oppure variabili e metodi non statici.
La classe Tester definisce una variabile test inizialmente posta a null e contiene il metodo read() che ne legge il contenuto.
Il codice posto subito dopo la dichiarazione della variabile consente di eseguire una inizializzazione della classe (in questo caso viene cambiato il valore della variabile).
Viene mostrato un esempio per ognuno dei due tipi di inizializzazione.

variabili e metodi statici
  /**
   * Example of class initialization.<br>
   * FILE Tester.java
   * @author Gabriele Giansante (c) 2003
   * @version 1.0
   */
  public class Tester {
      private static String test = null;
  
      static {
          test = "ciao";
          System.out.println("Codice statico eseguito!!!");
      }

      public static void read() {
          System.out.println("Metodo Tester.read(): " + test);
      }
  }

  #####################################################

  /**
   * Example of class initialization (MAIN)<br>
   * FILE Main.java
   * @author Gabriele Giansante (c) 2003
   * @version 1.0
   */
  public class Main {
      public static void main(String[] args) {
          System.out.println("Inizio esecuzione main!");
          >//In questo caso apparira' l'output generato 
          //dall'inizializzazione
          Tester.read();
          System.out.println("Provo a richiamare Tester.read()...");
          >//In questo caso non apparira' l'output generato 
          //dall'inizializzazione
          Tester.read();
      }
  }

variabili e metodi non statici
  /**
   * Example of class initialization<br>
   * FILE Tester.java
   * @author Gabriele Giansante (c) 2003
   * @version 1.0
   */
  public class Tester {
      private String test = null;
  
      {
          test = "ciao";
          System.out.println("Codice di inizializzazione eseguito!!!");
      }

      public void read() {
          System.out.println("Metodo Tester.read(): " + test);
      }
  }

  #####################################################

  /**
   * Example of class initialization (MAIN)<br>
   * FILE Main.java
   * @author Gabriele Giansante (c) 2003
   * @version 1.0
   */
  public class Main {
      public static void main(String[] args) {
          System.out.println("Inizio esecuzione main!");
          Tester t = new Tester();
          t.read();
          System.out.println("Provo a richiamare Tester.read()...");
          t.read();
      }
  }
Home Giansante Gabriele (c) 1999-2006