ePrometeusCorsoJavaJava
testi articoli
Testi Articoli  Download
Home | Basi | Espressioni | Comandi | Classi | Ereditarieta | Eccezioni | Thread | Utilita | 
CorsoJava è ora Video! Free for all!
Clicca Qui!

Classi
OOP
Ereditarietà
Polimorfismo
Chiamata
Classi
Record
Istanze
Costruttori
Campi
this
Allocazione
Più costruttori
this()
Inizializzazioni
Riferimenti
Ordine
Metodi
Invocazione
Overloading
Attenzione
Finalizzazione
Static e Final
Campi statici
Blocco static
Metodi statici
Visibilità
Costanti
Package
import
import *
Classpath
L'interprete
Zip e Jar

<<< Classpath >>>
un package corrisponde ad una directory
una classe corrisponde ad un file .class nella directory del package
Esempio: java.util.Vector equivale a:
File DOS : java\util\Vector.class 
File UNIX: java/util/Vector.class

Abbiamo visto il nome del package, che è gerarchico: solitamente sono nomi in minuscolo separati da un punto. In realtà un package è una directory. Il sistema cerca le classi in una directory che ha lo stesso nome del package a partire da le directory nel cosiddetto CLASSPATH. La barra specifica del sistema sostituisce il punto. Per esempio nei sistemi UNIX al posto del punto si utilizza la barra diretta, nei sistemi basati sul DOS si utilizza la barra inversa.

CLASSPATH:
Regola: una classe viene cercata nella sottodirectory corrispondente a partire dalle directory nel classpath

Vediamo adesso le regole che vengono utilizzate per localizzare una classe quando questa viene richiesta. Abbiamo visto che Java carica le classi in memoria quando qualcuno vi fa riferimento. Le classi hanno un nome gerarchico che comprende il loro package. Il package serve a anche per indicare in quale sotto directory bisogna cercare la classe. Le directory da cui parte la ricerca sono elencate nel CLASSPATH. Questo è un parametro che viene fornito all'interprete sulla riga di comando oppure usando lo variabile di ambiente CLASSPATH.

se CLASSPATH=c:\java;c:\java\lib
allora java.util.Vector viene cercata in:
1. c:\java\lib\java\util\Vector.class 
2. c:\java\util\Vector.class

Quindi se io faccio riferimento alla classe java.util.Vector e ho nel CLASSPATH le directory C:\java e C:\java\lib, si controllerà che non esista un file C:\Java\java\util\Vector.class o un file C:\Java\lib\java\util\Vector.class. Fare attenzione che questo meccanismo a volte sfugge ai principianti.

il package di default (senza dichiarazione di package) non ha una sottodirectory
le classi senza package vengono cercate nelle directory del classpath

Il package di default è quello che si ha se si ha omesso la dichiarazione package, corrisponde alla radice di ogni classe nel CLASSPATH.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com