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. ^

[cuprins]
(C) IntegraSoft 1996-1998