  |
import java.util.*; |
  |
importa tutte le classi del package |
  |
Fa cercare le classi non trovare in java.util |
A volte sono numerose le classi che devono essere utilizzate, m in generale tendono a trovarsi in pochi package. È possibile importare un intero package: si utilizza l'asterisco al posto del nome della classe. In ogni caso come l'importazione non di inserisce nulla, anche l'uso della importazione globale non inserisce nulla ma comunica al compilatore di utilizzare il package indicati per ricercare classi che non sono state trovate. Normalmente è possibile utilizzare direttamente classi che si trovano allo stesso package della classe senza impportarle.
  |
Possibili collisioni |
import java.util.*;
import java.sql.*;
// ambiguo: java.util.Date o java.sql.Date?
Date d = new Date ();
// ERRORE
import java.util.*;
import java.sql.*;
import java.sql.Date;
java.util.Date=new java.util.Date(); // usa java.util.Date
Date = new Date(); // usa java.sql.Date
Esiste la possibilità di collisioni: per esempio se si importano i due package java.util.* e java.sql.*, troviamo che la classe Date si trova in entrambi i package. Allora quale dei due deve essere utilizzata: il compilatore segnala un errore. In un questi casi o sui usa esplicitamente il nome lungo, oppure si può disambiguare utilizzando dopo la import con *, anche una import specifica, come nell'esempio.
  |
Sempre implicito |
import java.lang.*;
  |
per System, String, Thread, etc non occorrono import |
Alcune classi vengono automaticamente importate: in particolare è sempre implicito un import java.lang.*; in questo modo non è necessario importare classi di uso molto comune come quelle già dette.
|