Import statici

20 marzo 2009

Uno dei principali obiettivi nella sviluppo delle ultime due versioni di Java è stato quello di portare delle migliorie e facilitazioni nella scrittura del codice e nella sua manutenzione ordinaria. L’introduzione degli import statici aggiunge delle piccole semplificazioni.

Iniziamo con il più classico degli esempi: l’utilizzo degli stream di output e di errore (System.out e System.err). Noi utilizziamo gli oggetti out e err sulla classe System in quanto oggetti dichiarati statici (e pubblici). Facciamo un ragionamento più astratto e parliamo di tutte le istanze statiche che utilizziamo. Durante la stesura di un programma, capita di invocare decine e decince di volte questi oggetti, facendo riferimento al package (java.lang è importato di default), alla classe e ai metodi o alle variabili da utilizzare.

L’import statico ci viene in aiuto, consentendoci di importare gli elementi statici ci permette quindi di citarne il riferimento, omettendo il namespace (appena importato). Nel nostro caso potremo importare staticamente gli elementi out e err della classe java.lang.System ed utilizzarli riferendoli direttamente:

Listato 10.1. Esempio di Import statico

package it.html.tiger;
import static java.lang.System.out;
import static java.lang.System.err;

public class ImportTest {
  public static void main(String[] args) {
    //Chiamiamo direttamente la variabile out
    out.println(“Salve!”);
    //e la variabile err
    err.println(“Esecuzione eccezionale”);
  }
}

Ovviamente non si tratta di una grande rivoluzione, ma aiuta, e di molto, a ridurre il tempo di scrittura, in particolare quando abbiamo di fronte classi e metodi statici di utilità. Quanto detto, infatti, vale sia con variabili che con metodi statici. Pensiamo alle classi di utilità di java.lang.Math che ha decine di metodi statici, utilizzati per effettuare funzioni matematiche di base.

Listato 10.2. Import statico del metodo max presente nella libreria Math

import static java.lang.Math.max;
//..
  int y = max (10,33);
//..

Nel caso in cui il nome del metodo presenti più casi (per overload) l’import verrà esteso a tutti i metodi. Quando invece ci sono stessi nomi di metodi (statici), associati a diversi oggetti, varrà il principio di associazione che si basa sui parametri con cui chiamiamo la funzione.

C’è da dire che spesso vedremo la funzione di import statico insieme alla definizione e all’uso di enum (altra nuova caratteristica di cui parleremo in seguito).

L’import statico ha lo stesso significato (e sintassi) dell’import normale, con la differenza che questo è associato a tipi definiti statici. La presenza del carattere jolly (*), quindi, ha lo stesso significato dell’import normale. Nell’esempio che segue vediamo infatti come importare tutta la libreria Math e come richiamarne in maniera diretta i metodi:

Listato 10.3. Esempio di importazione della libreria Math

import static java.lang.Math.*;
//..
  int y = max (10,33);
  int z = abs(-3);
  double s = sqrt(99);
//..

Tutte le lezioni

1 ... 74 75 76 ... 122

Se vuoi aggiornamenti su Import statici inserisci la tua e-mail nel box qui sotto:
Tags:
 
X
Se vuoi aggiornamenti su Import statici

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy