Capitolul
VII
Structura programelor
- 8.1 Pachete de clase
- 8.2 Importul claselor
- 8.3 Fișiere sursă
- 8.4 Compilare și execuție
8.1 Pachete de clase
Clasele Java sunt organizate pe pachete. Aceste pachete pot avea nume ierarhice.
Numele de pachete au forma următoare:
[NumePachet.]* NumeComponentăPachet
Numele de pachete și de componente ale acestora sunt identificatori
Java. De obicei, aceste nume urmează structura de directoare în care sunt memorate
clasele compilate. Rădăcina arborelui de directoare în care
sunt memorate clasele este indicată de o variabilă sistem CLASSPATH. În DOS aceasta
se setează în felul următor:
set CLASSPATH=.;c:\java\lib
În Unix se poate seta cu comanda:
CLASSPATH=.:/usr/local/lib/java ; export CLASSPATH
dacă lucrați cu bash . Din această rădăcină, fiecare pachet are
propriul director. În director există codul binar pentru componentele pachetului
respectiv. Dacă pachetul conține subpachete, atunci acestea sunt memorate într-un
subdirector în interiorul directorului pachetului.
Creatorii Java recomandă folosirea unei reguli unice de numire a pachetelor, astfel
încât să nu apară conflicte. Convenția recomandată de ei este aceea de a folosi
numele domeniului Internet aparținând producătorului claselor. Astfel, numele de
pachete ar putea arăta ca în:
COM.Microsoft.OLE
COM.Apple.quicktime.v2
și așa mai departe.
8.2 Importul claselor
Desigur, este nevoie ca o clasă să poată folosi obiecte aparținând unei alte
clase. Pentru aceasta, definiția clasei respective trebuie să importe codul binar al
celeilalte clase pentru a ști care sunt variabilele și metodele clasei respective.
Importul se face cu o instrucțiune specială:
import numeClasă ;
unde numele clasei include și pachetul din care aceasta face parte. De exemplu:
import java.awt.Graphics;
import java.applet.Applet;
Se poate importa și un pachet întreg, adică toate clasele aparținând acelui
pachet, printr-o instrucțiune de forma:
import numePachet.*;
De exemplu:
import java.awt.*;
8.3 Fișiere sursă
Codul sursă Java trebuie introdus cu un editor într-un fișier text pe care îl vom
numi în continuare fișier sursă. Un fișier sursă poate să conțină
declarația mai multor clase și interfețe, dar doar una dintre acestea poate fi
declarată publică. Utilizarea celorlalte clase este limitată la fișierul respectiv.
Mai mult, nu putem avea în același timp o interfață publică și o clasă publică
declarate în același fișier sursă.
Dacă dorim să înregistrăm codul clasei într-un anumit pachet, putem să includem
la începutul fișierului sursă o declarație de forma:
package numePachet;
dacă această declarație lipsește, clasa va fi plasată în pachetul implicit, care
nu are nume.
Structura generală a unui fișier sursă este următoarea:
[ DeclarațiePachet ][ InstrucțiuneImport ]*[ DeclarațieDeTip ]*
unde declarația de tip poate fi o declarație de clasă sau de interfață.
8.4 Compilare și execuție
Fișierele sursă Java au obligatoriu extensia .java . Numele lor este
identic cu numele clasei sau interfeței publice declarate în interior. În urma
compilării rezultă fișiere cu nume identice cu numele claselor dar cu extensia .class
indiferent dacă este vorba de o clasă sau o interfață. Fișierul .class
este generat în directorul local și nu direct la locația pachetului.
Compilarea se face cu o comandă de forma:
javac FișierSursă .java
Comanda aceasta, ca și celelalte descrise în acest paragraf este specifică mediului
de dezvoltare Java pus la dispoziție de Sun, numit JDK (Java Development Kit). În viitor
este probabil să apară multe alte medii de dezvoltare care vor avea propriile lor
compilatoare și interpretoare și, posibil, propriile linii de comandă.
La compilare, variabila sistem CLASSPATH trebuie să fie deja setată pentru că
însuși compilatorul Java actual este scris în Java.
Pentru lansarea în execuție a unei aplicații Java, trebuie să introduceți comanda:
java NumeClasă
unde numele clasei este numele aplicației care conține metoda main .
Interpretorul va căuta un fișier cu numele NumeClasă.class și va
încerca să instanțieze clasa respectivă.
Pentru lansarea unui aplet veți avea nevoie de un document HTML care conține tagul
APPLET și ca parametru al acesteia
name=NumeClasă.class
La lansarea unui aplet, clasele care sunt apelate de clasa principală sunt mai întâi
căutate pe sistemul pe care rulează navigatorul. Dacă nu sunt acolo, ele vor fi
transferate în rețea. Asta înseamnă că transferul de cod este relativ mic, trebuie
transferat doar codul specific aplicației. |