Prawo Paula - nie można spaść z podłogi.
Java - Pakiety

Dla uniknąć konfliktów nazw klas wprowadzono w Javie pojęcie pakietu (ang. packages). Pakiety w Javie stanowią podzbiór biblioteki: zawierają przeważnie klasy związane tematycznie, mogą też zawierać definicje interfejsów.

Możemy tworzyć własne pakiety definiujące klasy i interfejsy przy użyciu wyrażenia package. Jeśli chcemy udostępnić własne klasy innym programistom, grupujemy je w jednym pakiecie, który oprócz definicji klas publicznych może zawierać definicje klas niepublicznych.

Poszczególne klasy publiczne definiujemy w pliku o nazwie:

   NazwaKlasyPublicznej1.java
   NazwaKlasyPublicznej2.java
   .....
   NazwaKlasyPublicznejX.java

Każdy z plików posiada następującą strukturę:

   package  NazwaPakietu;

   public class NazwaKlasyPublicznejN
   {   // definicja pól danych i metod klasy
   } 

   // ..... definicje klas niepublicznych

Po skompilowaniu dla każdej klasy tworzone są pliki z kodem pośrednim (bajtowym) o nazwach:

NazwaKlasyPublicznejN.class

Przynależność klasy do pakietu determinuje położenie pliku z kodem bajtowym klasy w strukturze katalogów. Pliki zawierające klasy z pakietu NazwaPakietu muszą znajdować się w podkatalogu NazwaPakietu, a ten katalog powinien znajdować się w miejscu zdefiniowanym przez zmienną systemową CLASSPATH, która określa położenie plików z kodem bajtowym klas.

Jeśli zmienna ta przyjmuje wartość:

   CLASSPATH = C:\JAVA\CLASSES\moje;

to nasze skompilowane pliki znajdą się w katalogu:

   C:\JAVA\CLASSES\moje\NazwaPakietu

Klasy należące do różnych pakietów mogą mieć identyczne nazwy, gdyż każdy pakiet tworzy własną przestrzeń nazw.

Dostęp do klas danego pakietu uzyskujemy używając słowa kluczowego import.

Przykład użycia klasy zadeklarowanej w pakiecie:

   import  NazwaPakietu.NazwaKlasyPublicznejN;
   class MojaKlasa 
   {   .....
   } 

Słowa import nie musimy używać, ale wówczas należy odwołać się bezpośrednio do klasy, przez dostęp kropkowy:

   class MojaKlasa 
   {	
       NazwaPakietu.NazwaKlasyPublicznejN.PoleX x =
                 NazwaPakietu.NazwaKlasyPublicznejN.MetodaX();
   }

Aby mieć dostęp do wszystkich klas pakietu deklaracja import wygląda następująco:

   import NazwaPakietu.*;

Klasy mogą być importowane nie tylko z dysku lokalnego. Mogą być też ładowane z Internetu, wtedy nazwa pakietu zaczyna się od odwróconej nazwy domeny. Np. dla domeny xyz.edu.pl pakiet będzie dostępny w Internecie pod nazwą:

   pl.edu.xyz.windows.java.classes.moje.NazwaPakietu
« wstecz   dalej »