Java/Package: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
+ template vari
Riga 97:
== Importare le classi ==
 
Per riutilizzare le classi stoccate in precedenza è necessario ma solo per i package personali come quelli che abbiamo fatto sopra usare la variabile di sistema CLASSPATH. Il Classpath serve, per dirgli dove sono solo i nostri package.
 
La JVM per i package standard di java, ovvero le API del linguaggio java, è già a posto , se li trova
automaticamente da sola, in quanto generalmente l'installazione del jDK, fatta normanlmente, include il percorso automaticamente. Quindi questo è valido per le installazioni tipiche. È possibile per installazioni personalizzate inserire classpath anche per le API standard se queste fossero in directory scelte da noi.
 
Il Classpath serve, per dirgli dove sono solo i nostri package.
 
Per esempio i file archiviati Helloworld sono in /home/giovanni/mieclassi/ .
Per usare le classi dei package bisogna scrivere la parola chiave <tt>import</tt>.
Precisamente <source lang=java>import nomedelpackage;</source>
Questa istruzione va inserita dopo "package", se presente (perché è opzionale), e prima di "class".
 
Per usare le classi dei package bisogna scrivere la parola chiave <tt>import</tt>.:
Vogliamo riusare le classi che abbiamo già fatto. Per farlo dobbiamo dire all'interprete dove sono le classi e in contemporanea quali sono. Dove e quali...
Precisamente <source lang=javatt>import nomedelpackage;</sourcett>
 
Vogliamo riusare le classi che abbiamo già fatto. Per farlo dobbiamo dire all'interprete dove sono le classi e in contemporanea quali sono. Se volessimo richiamare le nostre classi, prima archiviate, dovremo scrivere nel codice
<source lang=java>import saluti.inghilterra.*;</source>
L'interprete inserirà, prima della directory "saluti", il percorso del classpath e così troverà lindirizzo assoluto delle classi archiviate, vedrà anche l'asterisco e quindi ad ogni chiamata andrà a prendere il file corrispondente. Se non mettessimo l'asterisco dovremo mettere il nome preciso del file.class. Invece e quasi sempre, abbiamo bisogno di riusare molte classi e perciò è comodo l'asterisco.
dove "saluti.inghilterra" stanno ad indicare la directory e sottodirectory e l'asterisco i nomi dei file (asterisco = vogliamo tutti i file).
L'interprete inserirà, prima della directory "saluti", il percorso del classpath e così troverà lindirizzo assoluto delle classi archiviate, vedrà anche l'asterisco e quindi ad ogni chiamata andrà a prendere il file corrispondente. Se non mettessimo l'asterisco dovremo mettere il nome preciso del file.class. Invece e quasi sempre, abbiamo bisogno di riusare molte classi e perciò è comodo l'asterisco.
 
Faremo questo codice per i saluti in inglese:
Line 141 ⟶ 132:
Ed otteremo l'output:
Hello, world!
Attenzione tra il primo classpath e il secondo c'è una differenza ed è il "." punto. Questo è importante se vogliamo eseguire (comando "java") i file. class che abbiamo compilato (comando "javac") o che sono comunque presenti in questa stessa dir . Se lo omettiamo potremmo non poter eseguire i programmi: la JVM non trova i file.class nella dir corrente perché li cerca altrove.
Il classpath si può settare anche nelle variabili utente del sistema operativo e in questo modo non siamo più costretti a digitare un interminabile comando con opzioni strane con il rischio di sbagliare, ma basta solo un " "java"o un "javac".
Line 156 ⟶ 147:
Attenzione: nel capitolo installazione abbiamo parlato della variabile PATH che quì non c'entra niente, sono due cose molto diverse, alcuni le confondono.
La variabile PATH fa riferimento agli eseguibili java come i programmi java, javac, jar, ed altri, mentre la CLASSPATH punta alle classi.
Attenzione si ripete che è importante il "." punto nel classpath che rimanda ai file presenti nella dir corrente: questo è importante se vogliamo eseguire (comando "java") i file. class che abbiamo compilato (comando "javac") o che sono comunque presenti in questa stessa dir . Se lo omettiamo potremmo non poter eseguire i programmi: la JVM non trova i file.class nella dir corrente perché li cerca altrove.
 
Spessissimo, avremo bisogno di accedere alle classi contenute nei packages del JDK.
Nel JDK la sun fornisce una copiosa quantità di packages disponibili all'uso.
 
Alcuni package di base delle librerie standard java :
*<tt>java.lang</tt> è il package che contiene le classi di base del linguaggio
*<tt>java.util</tt> raccoglie classi d’utilità generale
*<tt>java.io</tt> contiene le classi per programmare l’input-output
*<tt>java.awt</tt> contiene classi per programmare interfacce grafiche
*<tt>java.net</tt> contiene classi per programmare connessioni
*<tt>java.applet</tt> contiene classi per programmare ''applet''
 
[[Categoria:Java|Package]]