Sunteți pe pagina 1din 13

Crearea primei aplicatii independente Daca ati instalat mediul de dezvoltare Java pe calculator, asa cum am aratat in capitolul

2, Prezentarea setului de dezvoltare Java (JDK), puteti trece la creerea primei dumneavoastra aplicatii independente. Pentru a parcurge exemplele din aceasta sectiune, aveti nevoie de compilatorul si interpretorul Java. Structura de baza a unei aplicatii independente Primul dumneavoastra program Java este o aplicatie independenta numita FirstApp. Una din principalele diferente intre miniaplicatiile si aplicatiile Java este includerea metodei main ( ). Toate aplicatiile Java contin o metoda main ( ). Desi aceasta aplicatie nu face decat sa afiseze textul Prima mea aplicatie independenta este un succes., ea va constitui punctul de plecare petru programe si concepte mai avansate. O mare calitae a programelor Java este accea ca toate respecta aceleasi principii de constructie, indiferent de complexitatea programelor. Nici aplicatia de cinci linii din listingul 4.1 nu face exceptie de la aceasta regula. Ea contine toate componentele de baza ale unei aplicatii Java mai complexe si ale unui program orientat pe obiecte: Este un obiect Foloseste incapsularea si transmiterea de mesaje Defineste o clasa Foloseste mostenirea Foloseste modificatorii de acces Listingul 4.1. Prima dumneavoastra aplicatie Java.
Class FirstApp { public static void main (String args[]) { System.out.prinln(Prima mea aplicatie este un succes.); } }

independenta

Pentru a intelege cum foloseste aceasta aplicatie cele cinci elemente cheie ale programarii orientate spre obiecte, trebuie sa examinati modul in care este legata aplicatia de aceste concepte. Obiectul si incapsularea in aplicatia FirstApp Obiectele reprezinta unitatea fundamentala a programelor orientate pe obiecte. Toate obiectele au o stare si un comportament. Tot ceea ce cunoaste un obiect despre variabilele si metodele pe care le contine formeaza starea obiectului. Actiunile pe care le poate efectua un obiect descriu comportamentul acestuia. Programul FirstApp defineste un singur obiect care are: O stare care nu se poate schimba (este statica) Un comportament care se rezuma la afisarea unui sir de caractere

Puteti sa folositi obiectele pentru a trimite mesaje catre alte obiecte, fara sa stiti cum functioneaza acestea. Este un concept al programarii orientat pe obiecte numit incapsulare. In Java, tote obiectele, clasele si pachetele sant incapsulate. Incapsularea va permite sa folositi un obiect Java, daca stiti ce valori vor fi acceptate de obiectul respectiv. Programul FirstApp utilizeaza conceptul de incapsulare pentru accesul la metoda println( ). Puteti sa folositi metoda println( ) fara sa stiti cum functioneaza aceasta. Tot ce trebuie sa stiti este faptul ca puteti transmite metodei un sir de caractere, care va fi afisat pe ecran. Un alt element pe care trebuie sa il cunoasteti pentru a avea acces la un obiect este locul in care se gaseste acesta in spatiul de nume. Java va permite accesul la metodele si variabilele publice, cu conditia sa stiti pozitia acestora in spatiul de nume. Metoda println( ) este una dintre sutele de metode din clasa System. Clasa System face parte din principalul pachet al interfetei API (Aplication Programming Interface). Java stie unde sa gaseasca metoda println( ), deoarece este specificata calea de acces la aceasta metoda. Desi nu este absolut necesara specificarea caii complete de acces la metode, in cazul metodei println( ) aceasta este: Java.lang.Sysytem.out.println Iata cum puteti interpreta in cuvinte simple calea de acces: println( ) este o submetoda a metodei out, care face parte din clasa System. Clasa System face parte din pachetul lang, al interfetei Java API. Clase si mosteniri in aplicatia FirstApp In Java clasele incapsuleaza obiecte si grupeaza un set de metode si variabile inrudite. Desi majoritatea programelor Java contin declaratii multiple de clase, aplicatia FirstApp are una singura. Linia urmatoare a programului FirstApp declara o clasa de obiecte cu numele FirstApp:
class FirstApp {

De obicei, puteti sa declarati clasele Java folosind una dintre cele doua forme generale. Prima forma a unei declaratii de clasa este:
class nume { // corpul declaratiei clasei }

Cea de-a doua forma generala de declarare a unei clase este:


class nume extends clasa_extinsa { // corpul declaratiei clasei }

In ambele forme, acolada deschisa marcheaza inceputul clasei, iar acolada inchisa marcheaza sfarsitul acesteia. Intre acolade, definiti metodele si variabilele de instanta asociate clasei. Toate clasele Java pot fi extinse la alte clase, implicit sau explicit. In felul acesta, puteti sa creati o clasa care mosteneste functionalitatea unei clase existente. Acest concept al programarii orientate pe obiecte se numeste mostenire. Mostenirea va permite sa refolositi codul existent si sa extindeti functionalitatea claselor existente. Ca si alte clase Java care nu extind in mod explicit o clasa existenta, clasa FirstApp extinde clasa Object. Prin mostenirea functionalitatii clasei Object, programul poate face o multime de lucruri pe care, altfel, nu le-ar putea realiza. Pentru a putea pune in evidenta acest lucru, vom rescrie prima forma generala de declarare a unei clase, astfel:

class nume extends Object { // corpul declaratiei clasei }

Modificatori de acces in aplicatia FiorstApp In java, accesul la metode si variabile este controlat prin modificatori de acces. Limbajul de programare Java defineste patru niveluri de control al accesului la metode si variabile: Public Protejat Privat Prestabilit tuturor Accesibile tuturor claselor, fara restrictie Accesibile numai obiectelor din acceasi clasa sau subclasa Accesibile numai obiectelor din acceasi clasa Daca nu sunt declarate altfel, se presupune ca sunt accesibile claselor din acelasi pachet (prietenoase) Metoda main( ) din aplicatia FirstApp este declarata publica. Aceasta inseamna ca metoda este complet accesibila altor metode si variabile. Un alt program poate obtine accesul la metoda main( ) a aplicatiei FirstApp, specificand calea de acces la aceasta metoda in spatiul de nume Java. Punerea tuturor elementelor laolalta Daca ati inteles in mare modul in care aplicatia FirstApp foloseste conceptele programarii orientate pe obiecte, reluati codul sursa al aplicatiei, linie cu linie. Prima linie a aplicatiei declara clasa FirstApp. Deoarece aceasta declaratie nu specifica o alta clasa pe care o extinde clasa FirstApp, in mod prestabilit FirstApp extinde clasa Object. Acolada deschisa marcheaza inceputul clasei FirstApp:
class FirstApp {

Urmatoarea linie declara mai multe lucruri in legatura cu metoda numita main ( ):
public static void main (String args[]) {

Putem descompune declaratia de mai sus in elementele sale componenete, astfel:


public static void main()

Acest modificator de acces precizeaza ca metoda este accesibila altor clase. Acest modificator specifica faptul ca metoda nu poate fi modificata si este implicit finala, ceea ce inseamna ca nu poate fi redefinita. Modificatorul void specifica faptul ca metoda nu returneaza nici o valoare. Cuvantul cheie main declara metoda main ( ) a aplicatiei. Argumentele metodei sunt specificate intre parantezele rotunde. Metoda main ( ) este necesara in toate aplicatiile Java, pentru a preciza interpretorului unde trebuie sa inceapa executia. Spre deosebire de programele C/C++, metoda main ( ) din aplicatiile Java nu returneaza nici o valoare. Java trateaza exceptiile pe cont propriu, nu le transmite sistemului.

(String args[]) {

Specifica faptul ca metoda main ( ) are un argument de tip String (sir de caractere. Acolada deschisa marcheaza inceputul metodei.

Urmatoarea instructiune apeleaza metoda println ( ) din clasa System si afiseaza mesajul Prima mea aplicatie independenta este un succes.. Ca si in cazul altor metode, argumentele transmise metodei println ( ) sunt declarate intre paranteze rotunde. Toate instructiunile Java se termina cu caracterul punct si virgula:
System.out.prinln(Prima succes.); mea aplicatie independenta este un

Ultimile doua linii ale aplicatiei contin cate o acolada inchisa. Prima acolada inchide blocul de cod al metodei main ( ), iar cea de-a doua inchide blocul de cod al clasei FirstApp. Crearea aplicatiei FirstApp Dupa ce ati vazut cum arata programul FirstApp, puteti sa creati acest program pe calculatorul dumneavoastra. Mai intai, trebuie sa faceti insa doua lucruri: 1. Sa stabiliti pozitia aplicatiei in sistemul de fisiere 2. Sa creati un fisier denumit corespunzator Crearea structurii de fisiere pentru aplicatie Atunci cand ati instalat pe calculator setul de dezvoltare Java, ati creat un director sau un dosar pentru pastrarea fisierelor utilizate de Java. Puteti sa stocati in acest director si aplicatiile proprii, dar este recomandabil sa folositi alte directoare, pentru a putea diferentia cu usurinta programele originale de cele create de dumneavoastra. Denumirea fisierului sursa al aplicatiei Dupa ce ati hotarat unde va fi plasata aplicatia si ati creat directoarele necesare, puteti trece la crearea codului sursa al aplicatiei. De fiecare data cand creati codul sursa al unei aplicatii, amintiti-va urmatoarele trei reguli: Trebuie sa creati codul sursa in fisiere cu extensia .java. Fisierul care contine codul sursa trebuie sa foloseasca numele clasei primare (al primei clase declarate) in fisierul respectiv. Indiferent daca sistemul de operare al calculatorului face diferenta intre literele mari si cele mici, compilatorul Java face aceasta distinctie, iar numele fisierelor trebuie sa corespunda exact numelor de clase. Pornind de la aceste reguli, trebuie sa stocati programul FirstApp intr-un fisier numit FirstApp.java. puteti folosi orice editor sau procesor de texte pentru crearea fisierului, insa acesta trebuie sa fie salvat ca fisier ascii standard. Pentru simplitatea si usurinta de folosire, majoritatea programatorilor prefera editoarele simple de text in locul programelor de prelucrare a textelor. In sistemele UNIX, puteti sa folositi un editor cum ar fi vi sau

emacs, din linia de comanda. In sistemele Windows 95/NT, folositi editorul MS-DOS sau Windows Notepad. In sistemele Macintosh, puteti sa folositi BBEdit sau SimpleText. Cand terminati de introdus codul sursa, verificati-l linie cu linie, pentru a va asigura ca este corect. Dupa ce va convingeti ca nu exista greseli, salvati-l in directorul desemnat pentru pastrarea aplicatiilor. Compilarea aplicatiei FirstApp Pentru compilarea aplicatiei FirstApp, folositi compilatorul Java, javac. La compilarea unui fisier sursa, compilatorul creeaza un fisier separat pentru fiecare clasa din program. Daca aplicatia are mai multe fisiere de calsa, trebuie sa apelati interpretorul Java cu numele fisierului care contine metoda main ( ). Deoarece aplicatia FirstApp contine o singura declaratie de clasa, compilatorul Java va crea un singur fisier. Pe calculatoarele Macintosh, compilarea programului se realizeaza tragand pur si simplu cu mouse-ul fisierul FirstApp.java peste pictograma compilatorului. Posesorii altor sisteme de operare nu trebuie sa fie prea ividiosi. In cazul acestora, javac este un instrument de lucru in linia de comanda. Deoarece linia de comanda ofera o interfata simplificata si o proiectare liniara, compilatoarele pentru UNIX, Windows 95/NT si OS/2 sunt mult mai flexibile. Folosirea unui compilator grafic Iata care sunt etapele pe care trebuie sa le parcurgeti pentru compilarea aplicatiei FirstApp cu ajutorul unui compilator grafic: 1. Trageti si plasati fisierul FirstApp.java in compilator sau selectati optiunea Open (Deschide) din meniul File (fisier) al compilatorului. 2. Fisierul compilat, numit FirstApp.class, este plasat in acelasi director cu fisierul sursa. 3. Daca apare o fereastra cu un mesaj de eroare, asigurati-va ca ati scris corect codul in fisierul sursa FirstApp.java. In cazul in care nu puteti compila fisierul nici dupa corectarea greselilor, cititi sectiunea Probleme deosebite de la sfarsitul acestui capitol. Folosirea unui compilator in linia de comanda Iata care sunt etapele pe care trebuie sa le parcurgeti pentru compilarea aplicatiei FirstApp cu ajutorul unui compilator din linia de comanda: 1. Treceti in directorul care contine codul sursa si scrieti in linia de comanda urmatoarele:
javac FirstApp.java

2. Fisierul compilat, numit FirstApp.class, este plasat in acelasi director cu fisierul sursa. 3. Daca este afisat un mesaj de eroare care spune ca fisierul javac nu poate fi gasit, calea de acces nu este stabilita corect. Faceti corectiile necesare sau specificati calea completa de acces la compilator. Daca in zona de comanda sunt afisate erori referitoare la codul sursa, verificati codul in fisierul sursa FirstApp.java. In cazul in care nu puteti compila fisierul nici dupa corectarea greselilor, cititi sectiunea Probleme deosebite de la sfarsitul acestui capitol.

Rularea aplicatiei FirstApp La compilarea unei aplicatii, compilatorul creeaza un fisier separat pentru fiecare clasa declarata. Deoarece programul FirstApp contine o singura declaratie de clasa, va fi creat un singur fisier. Puteti rula aplicatia cu ajutorul interpretorului Java, numit java. Pe calculatoarele Macintosh, folosirea interpretorului Java se face tragand pur si simplu cu mouse-ul fisierul FirstApp.class peste pictograma interpretorului. In alte sisteme, interpretorul Java este un instrument d lucru din linia de comanda si este apelat cu numele clasei pe care vreti sa o rulati. Folosirea unui interpretor grafic Iata care sunt etapele pe care trebuie sa le parcurgeti pentru rularea aplicatiei FirstApp cu ajutorul unui interpretor grafic: trageti si plasati fisierul FirstApp.class peste pictograma interpretorului sau selectati optiunea Open (Deschide) din meniul File (Fisier) al interpretorului. Ar trebui sa vedeti pe ecran mesajul Prima mea aplicatie independenta este un succes. Felicitari propozitia de pe ecran exprima purul adevar. Daca interpretorul afiseaza un mesaj de eroare, incercati sa rulati fisierul cu extensia .class. In cazul in care problemele persista, cititi sectiunea Probleme deosebite de la sfarsitul acestui capitol. Folosirea unui interpretor din linia de comanda Iata care sunt etapele pe care trebuie sa le parcurgeti pentru rularea aplicatiei FirstApp cu ajutorul unui interpretor din linia de comanda: treceti in directorul care contine fisierul compilat cu extensia .class si scrieti in linia de comanda urmatoarele:
java FirstApp

Ar trebui sa vedeti pe ecran mesajul Prima mea aplicatie independenta este un succes. Felicitari propozitia de pe ecran exprima purul adevar. Daca interpretorul afiseaza un mesaj de eroare, asigurati-va ca ati scris corect numele FirstApp si ca nu ati adaugat extensia .class. In cazul in care problemele persista, cititi sectiunea Probleme deosebite de la sfarsitul acestui capitol. Prima dumneavoastra miniaplicatie Java Daca mediul de dezvoltare Java este instalat pe calculatorul dumneavoastra, asa cum am aratat in capitolul 2, puteti trece la crearea primei dumneavoastra miniaplicatii. Pentru a parcurge exemplele di aceasta sectiune, aveti nevoie de compilatorul Java si de programul de vizualizare a miniaplicatiilor Java. Structura de baza a unei miniaplicatii Desi prima dumneavoastra miniaplicatie este mai complexa decat aplicatia independenta pe care ati creat-o anterior, programul foloseste aceleasi elemente constructive si aceleasi concepte ale programarii orientate pe obiecte. Miniaplicatia FirstApplet foloseste componentele multimedia integrate ale limbajului Java pentru afisarea unei imagini si redarea unui fisier de sunet. Listingul 4.2 cuprinde miniaplicatia FirstApplet. Desi programul are 17 linii, patru dintre acestea sunt inserate doar pentru a face programul mai usor de citit.

Listingul 4.2. Prima dumneavoastra miniaplicatie Java.


import java.awt.*; import java.applet.*; public class FirstApplet extends Applet { Image NewImage; public void init() { resize(400,400); NewImage = getImage(getCodeBase(),New.gif); } public void paint (Graphics g) { g.drawImage(NewImage,0,0,this); play(getCodBase(),New.au); } }

In continuare, vom trece in revista codul miniaplicatiei FirstApplet lini cu linie. Instructiunea import permite miniaplicatiei sa foloseasca metode si clase din alte pachete:
import java.awt.*; import java.applet.*;

In mod prestabilit, toate programele Java importa pachetul java.lang, care contine functiile de baza ale limbajului Java. Asteriscul de la sfarsitul instructiunii import permite importul dinamic al claselor Java. In acest exemplu, sunt importate dinamic clasele din pachetele java.awt si java.applet. Linia urmatoare declara o clasa numita FirstApplet care extinde clasa Applet:
public class FirstApplet extends Applet {

Prin extinderea clasei Applet, FirstApplet mosteneste functionalitatea acestei clase. Acolada deschisa marcheaza inceputul clasei FirstApplet. Linia urmatoare initializeaza variabila NewImage si o declara de a fi de tipul Image. In acest caz, NewImage are rolul unui substituent al imaginii care va fi afisata:
Image NewImage;

Linia urmatoare declara o metoda numita init ( ), care redefineste metoda init ( ) a clasei Applet:
public void init() {

Metoda init ( ) a clasei Applet este redefinita, astfel incat sa puteti redimensiona fereastra inainte de afisarea imaginii. Modificatorul public specifica faptul ca metoda este accesibila altor clase. Modificatorul void specifica faptul ca metoda nu returneaza nici o valoare. In mod normal, argumentele acceptate de o metoda sunt incadrate de paranteze rotunde. Deoarece metoda init ( ) nu accepta argumente, intre paranteze nu apare nimic.

Folosind metoda resize ( ), puteti sa redimensionati zona de afisare a miniaplicatiei. In acest exemplu, dimensiunea zonei de afisare este stabilita la 400x400 pixeli:
resize(400,400);

Dupa ce ati declarat o variabila de un anumit tip, puteti sa o folositi. Linia urmatoare stabileste o valoare pentru variabila NewImage;
NewImage = getImage(getCodeBase(),New.gif);

Pentru aceasta, este folosita metoda getImage ( ). Primul argument al metodei este un apel al metodei getCodeBase ( ), care returneaza pozitia directorului de baza sau a directorului curent de pe hard-disc. Directorul de baza este directorul care contine fisierul clasei pe care o rulati. Al doilea argument este numele imaginii care poate fi gasita in pozitia specificata. Urmatoarea linie de cod declara o metoda numita paint ( ), care redefineste metoda paint ( ) din pachetul AWT:
public void paint (Graphics g) {

Metoda paint ( ) este redefinita pentru a permite miniaplicatiei sa afiseze imaginea intro anumita pozitie pe ecran. Modificatorul public specifica faptul ca metoda este accesibila altor clase. Modificatorul void specifica faptul ca metoda nu returneaza nici o valoare. La apelarea metodei paint ( ), trebuie sa folositi ca parametru un obiect al clasei Graphics. Graphics este o clasa de baza abstracta pentru toate obiectele grafice. Elementul g reprezinta fereastra de tip Graphics specificata. Linia urmatoare apeleaza obiectul g, de tip Graphics, pentru afisarea imaginii NewImage;
g.drawImage(NewImage,0,0,this);

Metoda care realizeaza de fapt operatiunea se numeste drawImage ( ). Metoda drawImage ( ) accepta argumente prin care i se precizeaza ce imagine trebuie sa afiseze si unde. In acest exemplu, obiectul NewImage este afisat in punctul de coordonate 0,0. Ultimul argument al metodei se numeste observator. Scopul acestuia este sa verifice daca imaginea a fost afisata integral. Asa cum sugereaza si numele sau metoda play ( ) este folosita pentru redarea fisierelor de sunet. Primul argument al metodei play ( ) este un apel al metodei getCodeBase ( ), care returneaza pozitia directorului de baza sau a directorului curent de pe hard-disc.
play(getCodBase(),New.au);

Directorul de baza este directorul care contine fisierul clasei pe care o rulati. Al doilea argument este numele fisierului de sunet care poate fi gasit in pozitia specificata. Crearea miniaplicatiei Dupa ce ati vazut cum arata programul FirstApplet, puteti sa creati acest program pe calculatorul dumneavoastra. Mai intai, trebuie sa stabiliti insa pozitia miniaplicatiei in sistemul de fisiere si sa creati un fisier cu numele corespunzator. Sugestie: Va recomandam sa stocati miniaplicatiile create de dumneavoastra si toate fisierele asociate acestora intr-un director numit java_applets. In functie de complexitate, puteti crea subdirectoare diferite pentru fiecare miniaplicatie. In cazul miniaplicatiilor

complexe sau al celor la care lucreaza mai multi programatori, se recomanda stocarea fiecarei miniaplicatii intr-un director separat. Dupa ce ati hotarat unde va fi plasata miniaplicatia si ati creat directoarele necesare, puteti trece la crearea codului sursa al miniaplicatiilor. De fiecare data cand creati codul sursa al unei miniaplicatiik, amintiti-va urmatoarele reguli: Trebuie sa creati codul sursa in fisiere cu extensia .java. Fisierul care contine codul sursa trebuie sa aiba numele clasei primare (al primei clase) declarate in fisierul respectiv Indiferent daca sistemul de operare al calculatorului face diferenta intre literele mari si cele mici, compilatorul Java face aceasta distinctie, iar numele fisierelor trebuie sa corespunda exact numelor de clase. Pornind de la aceste reguli, trebuie sa stocati programul FirstApplet intr-un fisier numit FirstApplet.java. Acesta va fi salvat ca fisier de text ASCII standard. Cand terminati de introdus codul sursa, verificati-l linie cu linie, pentru a va asigura ca este corect. Dupa ce va convingeti ca nu exista greseli, salvati-l in directorul desemnat pentru pastrarea miniaplicatiilor. Compilarea miniaplicatiei FirstApplet Compilarea unei miniaplicatii se realizeaza la fel cu compilarea unei aplicatii. Pentru compilarea miniaplicatiei FirstApplet, folositi compilatorul Java, javac. La compilarea unui fisier sursa, compilatorul creeaza un fisier separat pentru fiecare clasa din program. Daca miniaplicatia are mai multe fisiere de clasa, trebuie sa apelati interpretorul Java cu numele clasei care contine metoda primara. Deoarece FirstApplet contine o singura declaratie de clasa, compilatorul Java va crea un singur fisier. Crearea unui fisier HTML pentru miniaplicatia dumneavoastra Deorece miniaplicatiile pot fi vizualizate cu ajutorul unor programe hipertext specializate, cum ar fi browserele Web, trebuie sa creati un document HTML inainte de a putea utiliza miniaplicatia. In cadrul acestui document, pentru incarcarea si rularea miniaplicatiei specificate, folositi o eticheta de marcare numita APPLET. In eticheta <APPLET> se face referire la clasele Java, nu la fisierele de clasa care se termina cu extensia .class. Exemplul de document HTML de mai jos contine o eticheta <APPLET> care se refera la clasa FirstApplet, si nu la fisierul numit FirstApplet.class. Cu ajutorul unui editor sau al unui procesor de texte, creati un fisier de text ASCII standard, cu urmatorul continut:
<HTML> <HEAD> <TITLE>First Java Applet</TITLE> </HEAD> <BODY> <APPLET CODE=FirstApplet width=400 height=400></APPLET> </BODY> </HTML>

Salvati acest fisier in acelasi director cu codul compilat al programului FirstApplet. Majoritatea documentelor HTML folosesc extensia .html; ar trebui sa salvati fisierul sub un nume corespunzator, cum ar fi example.html.

Rularea miniaplicatiei FirstApplet Dupa crearea fisierelor necesare pentru programul FirstApplet, puteti rula miniaplicatia cu ajutorul unui program de vizualizare a hipertextului. Setul de dezvoltare Java contine un astfel de program, numit appletviewer. Pe clculatoarele Macintosh, folosirea programului appletviewer Java se face tragand pur si simplu fisierul HTML peste pictograma AppletViewer. In alte sisteme, programul appletviewer este un instrument de lucru din linia de comanda si poate fi apelat cu numele clasei pe care vreti sa o rulati. Probleme deosebite Rezolvarea problemelor aparute in programe este o adevarata arta. Unii programatori reusesc sa descopere toate erorile din sute de linii de cod in cateva minute. Altii pierd ore in sir pentru aceeasi cantitate de cod. Din fericire, dupa ce setul JDK este instalat in mod corespunzator pe un calculator si testat, majoritatea erorilor apar in codul sursa si in caile de acces. Asadar, ceea ce veti citi in continuare nu reprezinta o lista exhaustiva a erorilor care pot aparea in timpul rularii programelor Java. Este, mai degraba, o lista de indicatii care va pot ajuta sa rezolvati majoritatea programelor. Acestea se impart in trei categorii: Erori de compilare Erori de interpretare Erori de vizualizare Erori de compilare Erorile de compilare sunt afisate, in mod normal, direct in fereastra de comanda. In cazul in care compilatorul Java afiseaza o eroare nu mai este creat fisierul cu extensia .class. Prin urmare, trebuie sa corectati toate erorile inainte de a compila si rula codul. Compilatorul Java va indica locul unde apare o eroare in program. Insa unele erori pot sa genereze multe altele in cursul compilarii. Tinand seama de acest lucru, trebuie sa examinati mai intai primele erori semnalate. Dupa corectarea acestora, recompilati codul si vedeti daca apar alte erori. Multe dintre erorile de compilare sunt generate de greseli de dactilografiere. Acestea sunt destul de greu de identificat; s-ar putea sa fiti nevoiti sa verificati codul sursa litera cu litera. Exista trei categorii de elemente pe care trebuie sa le verificati: Caracterele punctsi virgula Toate instructiunile trebuie sa se termine cu punct si virgula. Acoladele Toate clasele si metodele trebuie sa aiba o acolada deschisa si o acolada inchisa. Aceasta inseamna ca pentru fiecare declaratie de clasa si de metoda trebuie sa aveti o acolada deschisa si o acolada inchisa. Programul FirstApp are o declaratie de clasa si o declaratie de metoda. Ca urmare, in program trebuie sa existe doua acolade deschise si doua inchise. Programul FirstApplet are o declaratie de clasa si doua declaratii de metode; prin urmare, trebuie sa contina trei acolade deschise si trei acolade inchise. In plus, acoladele trebuie sa fie plasate corespunzator. Acolada deschisa urmeaza dupa

Parantezele

declaratia clasei sau a metodei. Acolada inchisa este ultimul element al clasei sau al metodei. Toate numele de metode trebuie sa fie urmate de argumentele acestora, incadrate de paranteze rotunde. Chiar daca o metoda nu accepta nici un parametru, numele acesteia trebuie sa fie urmat de paranteze.

Zece erori de compilare frecvente Urmeaza o lista cuprinzand 10 dintre cele mai frecvente erori cauzate de greseli de dactilografiere in FirstApp. Fiecare eroare de compilare are prezentata si solutia. Desigur ca FirstApp este un program simplu, dar puteti aplica procedura de rezolvare a problemelor la programe mai mari, inclusiv la FirstApplet. 1. Eroarea de compilare nr. 1:
FirstApp.java:1: { expected. Class FirstApp ^ 1 error

Solutie: Adaugati o acolada deschisa la declaratia clasei, pe prima linie, astfel:


Class FirstApp {

2. Eroarea de compilare nr. 2:


FirstApp.java:3: ; expected. System.out.println(Prima mea aplicatie independenta este un succes.) ^ 1 error

Solutie: Adaugati un caracter punct si virgula la sfarsitul liniei 3, astfel:


System.out.println(Prima mea aplicatie independenta este un succes.);

3. Eroarea de compilare nr. 3:


FirstApp.java:2: ) expected. public static void main (String args[] { ^ 1 error

Solutie: Inchideti paranteza din declaratia metodei de pe linia 2, astfel:


public static void main (String args[]) {

4. Eroarea de compilare nr. 4:


FirstApp.java:2: ) expected. public static void main (String args]) { ^ 1 error

Solutie: In acest caz, compilatorul Java afiseaza un mesaj ce poate produce confuzie. De pe linia 2 nu lipseste nici o paranteza rotunda. Lipseste paranteza patrata deschisa. Desi mesajul este eronat, el ne poate ajuta sa detectam pozitia greselii. Aceasta trebuie sa se afle undeva intre paranteza rotunda deschisa si paranteza rotunda inchisa. Problema poate fi rezolvata astfel:
public static void main (String args[]) {

5. Eroarea de compilare nr. 5:


FirstApp.java:2: Class tring not found in type declaration. public static void main (tring args[]) { ^ 1error

Solutie: Java cauta o clasa numita tring in loc de clasa numita String. Problema poate fi rezolvata astfel:
public static void main (String args[]) {

6. Eroarea de compilare nr. 6:


FirstApp.java:2: Class vod not found in type declaration. public static vod main (String args[]) { ^ FirstApp.java:2: Return required at end of vod main (java.lang.String[]). Public static vod main (String args[]) { ^ 2errors

Solutie: Cuvantul cheie void a fost scris incorect (vod). Din aceasta cauza, compilatorul Java afiseaza doua mesaje de eroare, unul corect si unul gresit. Este de ajuns sa corectati greseala de dactilografiere pentru a rezolva problema:
public static void main (String args[]) {

7. Eroarea de compilare nr. 7:


FirstApp.java:2: Invalid method declaration; required. public static void (String args[]) { ^ 1 error return type

Solutie: Declaratia metodei este invalida, deoarece lipseste numele metodei. Pentru corectarea problemei, trebuie inserat cuvantul main:
public static void main (String args[]) {

8. Eroarea de compilare nr. 8: