Sunteți pe pagina 1din 10

Programarea calculatoarelor poate parea misterioasa si ceva care ar trebui lasat in seama oamenilor

de stiinta din universitati dar nu este asa. Cu putin timp si efort puteti ajunge sa stapaniti cu usurinta
programarea calculatoarelor si sa preluati controlul asupra calculatorului intrun mod pe care nu l-ati
fi crezut posibil. Daca puteti sa cititi aceasta carte si sa luati notite aveti toate aptitudiniIe necesare
pt scrierea unui program pt calculator. Un program este un set de instructiuni pe care calculatorul
trebuie sa le urmeze. Aceste instructiuni sunt scrise intrun limbaj de programare care este foarte
asemanator cu limba engleza. Unul dintre cele mai populare limbaje de programare este Java.
Probabil ati auzit deja toata reclama zgomotoasa din jurul limbajului Java si toate discutiiIe despre
modul in care Java a revolutionat programarea calculatoarelor. Veti fi in fruntea acestei revolutii
invatand cum sa puneti calculatorul la munca cu ajutorul propriului program Java. Sa incepem cu
inceputul de la elementele de baza apoi avansand pas cu pas pana cand veti invata tot ce trebuie sa
stiti pt a scrie un program Java.

Programe pt calculatoare
Probabil folositi un calculator personal totusi calculatoarele personale reprezinta doar unul dintre
tipurile de calculatoare existente. Alte categorii de calculatoare sunt asistentii digitali personali
personal digital assistant PDA supercalculatoare rulate la nivelul corporatiilor si microcalculatoare
folosite in automobile aeronave si aparate electrocasnice.
Toate calculatoarele au o trasatura comuna efectueaza calcule si iau decizii de miliarde de ori mai
repede decat o putem face noi oamenii. Din punct de vedere tehnic calculatoarele pot executa numai
doua tipuri de calcule - adunari si scaderi*. • "Creierul" matematic al calculatorului unitatea
aritmetica si logica ALU poate efectua doua categorii de operatii elementare. Prima categorie este
formata de operatiile aritmetice respectiv adunarea, scaderea, inmultirea cu 2, impartirea cu 2 (din
motive pe care le veti vedea ceva mai tarziu) si allele. A doua categorie de operatii elementare este
formata din comparatii - avand doua numere unitatea aritmetica si logica poate stabili daca acestea
sunt egale si daca nu care dintre ele este mai mare.
Sunteti gata pt primul test ? De unde stiti daca doua numere sunt egale ? Le scadeti.
Daca diferenta este zero numerele sunt egale. Daca diferenta este un numar pozitiv primul numar
este mai mare decat al doilea. Daca diferenta este un numar negativ primul numar este mai mic
decat al doilea. Aceasta este metoda prin care calculatoarele iau deciziile logice.
Un programator instruieste calculatorul sa efectueze calcule si sa ia decizii prin scrierea unui
program pt calculator. Un program pt calculator contine toate etapele care trebuie urmate intro
anumita ordine pt efectuarea unui calcul specific sau pt luarea unei decizii logice.

Date
Multe instructiuni cer calculatorului sa manipuleze informatii furnizate de programator sau de un alt
calculator. Aceste informatii sunt numite date.
Furnizati date unui program de fiecare data cand introduceti numele de identificare si parola in
calculator. Programul primeste aceste informatii si le valideaza inainte de a va permite accesul la
calculator. Iata un alt test: ce calcule sunt folosite pt validarea numelui de identificare si a parolei ?
Scaderea ! Programul scade numele de identificare si parola furnizate din cele valide. Daca
diferenta este zero inseamna ca acestea se potrivesc si accesul este permis.
Un programator poate introduce date direct intro instructiune daca trebuie sa furnizeze date.
De exemplu iata o instructiune care cere calculatorului sa adune doua numere (numerele au fost
plasate in instructiune de programator): 10 + 15
Sunteti surprins sa vedeti cat de simpla poate fi o instructiune ? Daca este asa va puteti bucura
deoarece multe dintre instructiunile pe care le scrieti in limbajul de programare Java sunt usor de
inteles si de scris.
De multe ori in momentul in care scrie programul programatorul nu are la dispozitie datele care vor
fi folosite in instructiuni - cum ar fi identificatorul si parola unui utilizator.
Persoana care foloseste programul trebuie sa introduca aceste date in timpul rularii programului.
Totusi instructiunile din program trebuie sa tina seama de aceste date asa ca programatorul
foloseste un inlocuitor pt acestea. Puteti sa va ganditi la acesti inlocuitori ca la un fel de etichete
temporare pt date. Programatorii numesc aceste etichete variabile despre care veti invata mai tarziu
in carte. Exemplul urmator ilustreaza aceeasi instructiune folosita pt adunarea a doua numere
exceptand faptul ca literele A si B sunt folosite ca inlocuitori pt numere: A + B
Calculatorul inlocuieste aceste litere cu numere atunci cand persoana care foloseste programul
introduce numere in timpul rularii programului sau cand numerele sunt furnizate de un alt program.

Limbaje de programare
Un limbaj de programare precum Java permite programatorului sa scrie mai usor instructiunile pt
calculator deoarece aceste instructiuni sunt scrise folosind cuvinte asemanatoare cu cele din limba
engleza. Totusi calculatorul nu intelege cuvintele din limba engleza. Calculatorul intelege numai
instructiunile scrise in limbaj masina.
Instructiunile in limbaj masina sunt formate din serii de zero si unu care sunt intelese de unitatea
centrala de prelucrare CPU componenta in care au loc toate procesele de prelucrare dintrun
calculator.
Desi programatorii au tendinta de a vorbi despre un singur limbaj de programare de fapt exista mai
multe variante ale limbajului masina. Ganditiva ca toate aceste variante sunt dialecte ale limbajului
masina. Fiecare unitate centrala de prelucrare intelege un singur limbaj masina. Aceasta inseamna
ca un program scris intrun dialect poate fi rulat numai pe calculatoarele echipate cu un CPU care
intelege dialectul respectiv. Din aceasta cauza programele sunt dependente de calculator sau
dependente de masina. Ca urmare un program in limbaj masina scris pt un calculator nu poate fi
rulat pe un alt tip de calculator.
Nu este nevoie sa fiti om de stiinta pt a vedea care sunt problemele scrierii unui program in limbaj
masina. In primul rand ce om sanatos ar vrea sa scrie un program folosind numai siruri de zero si
unu ? Noi gandim in cuvinte nu in numere. De asemenea cine ar vrea sa scrie un program care poate
fi rulat pe un singur tip de calculator ?
Aparitia limbajului de asamblare a rezolvat cel putin una dintre aceste probleme.
Limbajul de asamblare este un alt limbaj de programare care foloseste abrevieri ale cuvintelor din
limba engleza numite instructiuni in limbaj de asamblare fiecare reprezentand o operatie elementara
executata de calculator.
Programatorul trebuie mai intai sa decida ce operatie este necesara apoi sa foloseasca instructiunea
in limbaj de asamblare care cere calculatorului sa execute operatia respectiva.
Totusi calculatorul nu intelege decat siruri de zero si unu asa ca este folosit un program numit
asamblor (assembler) care transforma instructiunile din limbaj de asamblare in limbaj masina.
Iata un exemplu de program in limbaj de asamblare care cere calculatorului sa efectueze o operatie
de adunare. Mai exact instructiunea de mai jos insumeaza numerele 10 si 15. ADD 10, 15
Trebuie sa recunoasteti ca limbajul de asamblare are un mare avantaj fata de limbajul masina
programatorul poate sa foloseasca cuvinte asemanatoare cu cele din limba engleza pt a scrie
instructiuni. Totusi exista si o serie de dezavantaje critice.
Programatorii sunt nevoiti sa invete din limbajul de asamblare o multime de abrevieri care nu sunt
foarte intuitive cum ar fi POP si PUSH. De asemenea sunt necesare multe instructiuni pt executarea
unor operatii fundamentale. Dar cea mai mare problema este portabilitatea. Fiecare tip de calculator
intelege propriul dialect al limbajului de asamblare ceea ce face aproape imposibila scrierea unui
program in limbaj de asamblare care sa ruleze pe diferite tipuri de calculatoare fara sa fie necesara
rescrierea programului sursa.
Limbajul de asamblare a evoluat in limbaje de programare de nivel inalt care sunt intuitive deoarece
folosesc cuvinte asemanatoare cu cele din limba engleza instructiuni (propozitii) si semne de
punctuatie care va permit sa instruiti calculatorul sa faca un anumit lucru. C++ si Java sunt limbaje
de programare de nivel inalt folosite pe scara larga in prezent.
In plus puteti scrie instructiuni care executa un set de operatii inrudite. Nu mai este nevoie ca
programatorul sa scrie o instructiune pt fiecare operatie. De asemenea programele scrise in limbaje
de programare de nivel inalt pot fi rulate pe diferite tipuri de calculatoare fara sa fie necesara
rescrierea programelor sursa.
Iata cum functioneaza un limbaj de programare de nivel inalt: programatorul foloseste cuvinte cheie
din limbajul de programare pt a cere calculatorului sa faca ceva. Cuvintele cheie sunt similare cu
cuvintele din limba engleza cu ajutorul carora puteti forma propozitii prin care cereti cuiva sa faca
ceva.
Asa cum probabil ati ghicit deja calculatorul nu intelege un program scris intrun limbaj de
programare de nivel inalt deoarece calculatoarele inteleg numai limbajul masina.
Ca urmare programul scris intrun limbaj de nivel inalt trebuie sa fie transformat in limbaj masina.
Acest proces de translatie implica doua etape. Mai intai programul este translatat intro etapa
intermediara numita fisier obiect. Apoi fisierul obiect este transformat in limbaj masina care poate fi
rulat pe calculator.
Translatarea unui program intrun fisier obiect este numita compilare si este facuta de un program de
translatie numit compilator. Procesul de transformare a unui fisier obiect in limbaj masina se
numeste editarea legaturilor (linking) si este executat de un program numit editor de legaturi
(linker).
Probabil va intrebati de ce programul nu este compilat direct in limbaj masina. Motivul este faptul
ca un program are de obicei doua sau mai multe fisiere obiect care trebuie sa fie legate laolalta pt a
forma programul in limbaj masina. Din acest motiv programatorii numesc procesul de combinare a
fisierelor editarea legaturilor.
Compilarea si editarea legaturilor sunt caracteristici importante ale unul limbaj de programare de
nivel inalt deoarece aceste doua procese permit rularea unui program pe tipuri diferite de
calculatoare fara sa fie necesar ca programatorul sa rescrie programul.
Acest lucru este posibil datorita faptului ca exista compilatoare si editoare de legaturi diferite pt
fiecare tip de calculator capabile sa translateze un anumit limbaj de programare de nivel inalt in
limbajul masina al fiecarui tip de calculator. De exemplu pt un program scris in C++ puteti face
compilarea si editarea legaturilor astfel incat programul sa ruleze pe diferite tipuri de calculatoare
fara a fi rescris.
Iata versiunea intrun limbaj de programare de nivel inalt a exemplului in limbaj de asamblare
prezentat mai devreme in aceasta sectiune: 10 + 15

La inceputuri
In anii 50 doua limbaje de nivel inalt foarte raspandite erau FORTRAN FORmula TRANslator si
COBOL COmmon Business Oriented Languages care inca sunt folosite si-n prezent.
FORTRAN dezvoltat de IBM este un limbaj de programare de nivel inalt conceput pt efectuarea
calculelor matematice complexe, in aplicatii stiintifice si de inginerie.
COBOL dezvoltat de guvemul federal american este conceput pt prelucrarea si manipularea unor
cantitati mari de date. Ambele limbaje isi indeplineau foarte bine obiectivele dar nu erau suficient
de flexibile si Ie lipseau caracteristicile necesare pt scrierea compilatoarelor si a sistemelor de
operare.
Ca urmare inginerii au incercat sa dezvolte un limbaj de programare mai flexibil si catre sfarsitul
ani lor 60 Martin Richards a creat un nou limbaj de programare.
Acesta se numea BCPL si era folosit pt scrierea compilatoarelor. La putin timp dupa lansarea
limbajului BCPL Ken Thompson a dezvoltat o versiune imbunatatita numita B.
Limbajul de programare B a fost folosit pt crearea primelor versiuni ale sistemului de programare
Unix la Bell Laboratories.
Limbaje1e de programare BCPL si B aveau un mare dezavantaj in privinta modului in care foloseau
memoria. In prezent memoria calculatoarelor este relativ ieftina dar in anii 60 era foarte scumpa iar
limbajele BCPL si B foloseau ineficient memoria calculatorului.
Ganditiva ca memoria calculatorului este un set de cutii. In fiecare cutie puteti pune o sticla de apa
(datele). Trebuie sa rezervati o cutie inainte de a putea pune acolo o sticla de apa. Ca urmare este
logic sa rezervati zece cutii daca vreti sa stocati zece sticle cu apa si cinci cutii daca vreti sa stocati
cinci sticle cu apa. In BCPL si B trebuie sa rezervati acelasi numar de cutii indiferent de numarul de
sticle pe care vreti sa le stocati. Ca urmare de fiecare data cand vreti sa stocati o sticla cu apa trebuie
sa rezervati zece cutii. Aceasta inseamna ca noua cutii raman nefolosite si ca urmare sunt irosite.
In 1972 la Bell Laboratories Dennis Ritchie a creat limbajul de programare C care elimina
dezavantajele din BCPL si B. Limbajul de programare C incorpora multe dintre caracteristicile
limbajelor BCPL si B dar introducea si unele noi care printre altele permiteau unui programator sa
specifice cu exactitate cantitatea de memorie necesara pt stocarea datelor in memoria calculatorului.
Desi limbajul de programare C a rezolvat problemele din BCPL si B unii programatori au ramas cu
senzatia ca acesta nu are posibilitatea de a imita modul in care vedem lumea reala. Acesta este un
dezavantaj important deoarece programele sunt concepute sa simuleze lumea reala in interiorul
calculatoarelor. Ca urmare limbajul de programare C nu putea simula lumea reala conform
dorintelor programatorilor.
Vedem lumea reala ca o multime de obiecte aceste obiecte au atribute (date) si comportamente.
Sa luam ca exemplu o fereastra. Dimensiunile ferestrei sunt atributele obiectului. Fereastra poate fi
inchisa sau deschisa iar acestea sunt functii asociate ferestrei.
Limbajul de programare C este un limbaj procedural care imita comportamentul din lumea reala in
interiorul calculatorului. Din nefericire limbajul de programare C nu ofera o modalitate de a
combina comportamentul cu atributele.
In 1980 Bjarne Stroustrup la Bell Laboratories a dezvoltat un nou limbaj de programare numit C++.
Cea mai importanta evolutie din C++ a fost capacitatea de a combina atributele si functiile in
obiecte. Odata cu aceasta capacitate sau dezvoltat si modelul orientat spre obiecte si programarea
orientata spre obiecte. (Vedeti cartea Object-Oriented Programming Demystified pt mai multe
informatii despre acest subiect).
Probabil va intrebati de ce Stroustrup a folosit simbolurile ++ in loc sa inventeze un nume complet
nou pt limbaj. Simbolurile ++ reprezinta operatorul de incrementare din C si din Java despre care
veti invata mai tarziu in carte. Pt moment este important sa retineti ca operatorul de incrementare
adauga o unitate la valoarea curenta. Ca urmare numele C++ implica faptul ca noul limbaj
incorporeaza caracteristicile din C si adauga altele noi. Puteti considera ca C++ este o extensie a
limbajului de programare C.

Cum devine standard un limbaj de programare


V-ati intrebat vreodata cum este dezvoltat un limbaj de programare. Este nevoie de multa
perseverenta si de noroc. Sa ne intoarcem putin si sa revedem componentele unui limbaj de
programare. Toate limbajele de programare sunt formate din cuvinte cheie si functionalitati.
Un cuvant cheie seamana cu un cuvant din limba engleza. Prin functionalitate intelegem actiunea
executata de calculator atunci cand un cuvant cheie este folosit intrun program. Ganditiva ca
functionalitatea este definitia cuvantului cheie.
Primul pas in dezvoltarea unui limbaj de programare consta in elaborarea unei liste de cuvinte cheie
impreuna cu actiunile asociate acestora. Ideal ar fi ca noul limbaj de programare sa asigure o
imbunatatire necesara fata de un limbaj de programare existent altfel nimeni nu va folosi noul
limbaj cu exceptia dv.
Pasul urmator este sa faceti publica aparitia noului limbaj in cadrul unei comunitati tehnice si sa
starniti interesul membrilor acestei comunitati. Daca informatia ajunge la un numar suficient de
mare de utilizatori si exista posibilitatea obtinerii unor avantaje companiile importante din domeniu
vor impune standardizarea noului limbaj de programare.
Standardizarea este procesul formal prin care comunitatea tehnica prin intermediul unei organizatii
de standardizare convine asupra unui set de cuvinte cheie si a actiunilor asociate. Organizatii de
standardizare recunoscute sunt American National Standards Institute (ANSI; www.ansi.org) si
International Standards Organization (ISO; www.iso.ch).
Java Community Process (www.jcp.org) stabileste standardele pt limbajul de programare Java.
Dupa stabilirea standardelor producatorii de instrumente software dezvolta compilatoare, editoare
de legaturi si alte instrumente software care recunosc programele scrise in noul limbaj de
programare si translateaza aceste programe in limbaj masina astfel incat sa poata fi rulate pe
diferite tipuri de calculatoare. De asemenea noul limbaj de programare este predat in institutii de
invatamant sunt publicate carti despre el iar programatorii il folosesc pt scrierea programelor.

Apoi Java
C++ si alte limbaje de programare de nivel inalt au un dezavantaj comun: programele scrise in
aceste limbaje trebuie sa fie recompilate pt a putea fi rulate pe diferite tipuri de calculatoare.
Organizatiile comerciale aveau nevoie de un limbaj de programare care sa le permita dezvoltarea
unui program care sa poata fi rulat pe orice calculator fara a fi necesara recompilarea programului.
Desi pe o cale ocolitoare Sun Microsystems a indeplinit aceasta cerinta prin introducerea limbajului
de programare Java. In 1991 Sun Microsystems a lansat proiectul Green cu scopul de a dezvolta un
limbaj de programare potrivit pt dispozitivele electronice comerciale de larg consum precum
televizoarele si calculatoarele folosite in automobile.
Compania Sun se astepta ca aceasta noua piata de desfacere sa se dezvolte putemic.
James Gosling unul dintre inginerii sefi implicati in proiectul Green a creat in acest scop limbajul de
programare Oak (stejar). Numele limbajului provine de la copacul aflat langa biroul lui Gosling.
Totusi a aparut o problema. Exista deja un limbaj de programare nurnit Oak. Asa ca Gosling si
inginerii din proiectul Green sau intalnit la o cafenea pt a cauta un nou nume pt limbaj si asa sa
nascut Java.
Cerinta privind folosirea unui nou limbaj pt dispozitivele electronice nu sa materializat niciodata
dar in 1993 a inceput dezvoltarea exploziva a sistemului World Wide Web. Ceea ce odata era o retea
de comunicatii pt mediile academice si guvemamentale a devenit un mijloc de comunicare pt
mediile comerciale si publicul larg.
Pagina web a devenit un mediu cheie in comunicare. Fiecare pagina web era scrisa manual folosind
limbajul HTML Hypertext Markup Language pentru afisarea textului si a imaginilor. Acestea sunt
cunoscute sub numele de pagini web statice deoarece continutul ramane neschimbat de fiecare data
cand paginile sunt vizualizate.
DezvoItatorii de pagini web aveau nevoie de o modalitate robusta de construire a paginilor web
dinamice care sa poata fi personalizate pt fiecare vizitator al unui site web. Ei voiau ca paginile web
sa fie generate de un program care sa poata interactiona automat si cu bazele de date si
calculatoarele folosite intro organizatie.
Limbajul de programare Java dezvoltate de Gosling era perfect pt crearea paginilor web dinamice
cu continut interactiv care sa permita personalizarea paginii pt fiecare vizitator al site-ului. In plus
Java rula practic pe orice tip de calculator fara a fi necesara recompilarea programelor.
Sun Microsystems a lansat oficial limbajul Java in 1995 si patru ani mai tarziu acesta a devenit
limbajul preferat pt aplicatiile la nivel de intreprindere bazate pe World Wide Web.
In prezent limbajul de programare Java include mai multe versiuni numite editii.
Versiunea cea mai raspandita este Java 2 Standard Edition J2SE pe care o vom explora in aceasta
carte. De asemenea exista versiunea Java 2 Enterprise Edition J2EE folosita pt construirea
aplicatiilor la nivel de corporatie. O alta versiune raspandita a limbajului este Java 2 Micro Edition
J2ME conceputa pt dispozitive mobile cum ar fi telefoanele celulare si asistentii personali digitali
PDA personal digital assistant. Puteti afla mai multe despre J2EE din cartea J2EE: The Complete
Reference iar despre J2ME din J2ME: The Complete Reference.

Sa vedem cateva elemente de baza ale limbajului Java. Un program este o serie de instructiuni
scrise intrun limbaj de programare care cere unui calculator sa execute anumite sarcini. Acestea sunt
asemanatoare cu indicatiile pe care le scrieti unui prieten ca sa-i explicati cum sa ajunga la dv acasa.
Fiecare instructiune trebuie sa fie exacta astfel incat calculatorul sa inteleaga ce vreti sa faca.
Fara indoiala ati mai auzit termenul aplicatie pt calculator. O aplicatie este de obicei un grup de
programe inrudite care colectiv arata calculatorului cum sa emuleze lumea reala. De exemplu un
supermagazin local are o aplicatie de prelucrare a tranzactiilor folosita pt inregistrarea, prelucrarea
si raportarea vanzarilor. Cea mai vizibila parte a aplicatiei de prelucrare a tranzactiei este scanerul
de la casa. Aplicatia este insa compusa din multe programe.
Un program Java este format din una sau mai multe clase scrise in limbajul de programare Java.
O clasa seamana cu o forma de prajituri folosita pt a defini in interiorul calculatorului un obiect din
lumea reala. La fel cum o forma de prajituri defineste aspectul unei prajituri o clasa defineste
aspectul unui obiect. La fel ca o forma de prajituri o clasa este folosita pt crearea obiectelor propriu-
zise in program. Veti vedea cum sa faceti acest lucru in capitolul 7.
Aceste clase contin instructiuni care spun unui calculator ce sa faca si in acelasi timp ii furnizeaza
datele de care are nevoie pt a-si indeplini sarcinile. Clasele sunt scrise intrun fisier de cod sursa Java
folosind un editor. Un fisierde cod sursa Java este asemanator cu un document dintrun procesor de
text dar in loc de text codul sursa contine instructiuni scrise in limbajul de programare Java. Un
editor este un procesor de text mai simplu care nu are toate functiile de formatare a textului pe care
le gasiti de obicei intrun procesor de text.
Dv scrieti codul sursa Java care devine un program Java. Codul sursa trebuie sa fie salvat pe disc
intrun fisier cu extensia • java.
Java functioneaza altfel decat C++ si alte limbaje de programare de nivel inalt. Limbajele de
programare de nivel inalt trebuie sa fie compilate in cod obiect care apoi este editat de un editor de
legaturi (linker) pt a forma programul in limbaj masina rulat pe calculator.
Codul sursa Java nu este compilat in cod obiect ci in cod de octeti salvat intrsun fisier cu extensia
• class. Compilatorul Java este o componenta a pachetului Java 2 Software Development Kit J2SDK
care poate fi descarcat gratuit de pe siteul web java.sun.com.
Codul de octeti generat de compilatorul Java este interpretat de masina virtuala Java Virtual
Machine JVM care translateaza codul de octeti in limbajul masina rulat pe calculator. In prezent pt
majoritatea tipurilor de calculatoare sunt disponibile masini virtuale Java care pot fi descarcate
gratuit de pe siteul web java.sun.com.
Masina virtuala Java este cheia succesului cunoscut de acest limbaj intrucat codul de octeti produs
de compilatorul Java poate fi citit de orice masina JVM indiferent de tipul calculatorului pe care
este rulata. Vechiul obiectiv al programatorilor a fost in sfarsit atins un program poate fi compilat o
singura data si rulat practic pe orice calculator fara a fi recompilat sau modificat.

Scrierea unui program Java pornind de la zero


Inainte de a intra in detaliile limbajului Java sa tragem aer in piept si sa scriem, sa compilam si sa
rulam traditrionalul program Hello World care este primul program scris de orice programator.
Acesta contine toate elementele de baza ale unui program Java si va va ajuta sa deveniti mai
increzator pe masura ce veti invata toate subtilitatile limbajului de-a lungul acestei carti.
Pt inceput descarcati pachetul Java 2 Software Development Kit de la adresa java.sun.com. Va
trebui sa asteptati cateva minute inainte ca intregul fisier sa fie copiat pe calculatorul dv. Dupa ce se
termina descarcarea executati clic pe pictograma J2SDK si instalati setul de dezvoltare. Nu uitati sa
includeti in calea de acces subdirectorul bin astfel incat puteti compila programele Java din orice
director de pe calculator.
Dupa instalarea pachetului J2SDK pe calculator sunteti gata sa scrieti primul program Java. Va
trebui sa scrieti instructiunile Java intrun editor de text. Majoritatea calculatoarelor au un editor.
Daca folositi un calculator Windows deschideti programul Notepad. Daca folositi un calculator
Linux lansati programul vi. Introduceti in editor textul din figura 1-1. Acesta este programul Hello
World scris in Java.
Salvati fisierul cu numele Hello World.java. Asigurativa ca numele este scris exact ca aici. Altfel va
fi generata o eroare de compilare. Java face diferenta intre literele mari si cele mici in numele
fisierelor si ale c1aselor.
class HelloWorld {
public static void main ( String args[]
{
System.out.println("Hello world!");
Figura 1-1 Programul HelloWorldCAPITOLUL '1
in interiorul limbajului Java
Daca folositi programul Notepad selectati optiunea Save As. Observati ca numele prestabilit este *.
txt. Inlocuiti acest nume cu HelloWorld.java. Pt a deschide acest fisierin Notepad alegeti optiunea
All Files (*. *) in loc de Text Document (* .txt) din lista File Type astfel incat sa vedeti si fisierele
care nu au extensia * . txt.

Compilarea unui program Java


Vom discuta fiecare parte a programului HelloWorld. java in sectiunea urmatoare.
Acum vom compila si vom rula programul. Daca folositi un calculator Windows deschideti o
fereastra Command Prompt. Daca folositi un calculator Linux deschideti o fereastra de consola.
Scrieti urmatoarea comanda in linia de comanda apoi apasati tasta Enter:
javac HelloWorld.java
Daca programul este compilat cu succes pe ecran apare din nou promptul de comanda.
Daca afisati directorul de lucru veti vedea un nou fisier HelloWorld.class care contine codul de
octeti al programului. Pe un calculator Windows afisati continutul directorului scriind comanda dir
si apasand tasta ENTER. Pe un calculator Linux scrieti comanda ls si apasati tasta ENTER.
Daca programul nu a fost compilat cu succes pe ecran apar diferite mesaje de eroare.
Iata cateva dintre acestea impreuna cu solutiile posibile:
• 'javac' is not recognized as an internal or external command operable program or batch file (,javac'
nu este recunoscuta ca o comanda interna sau externa, program executabil sau fisier de comenzi).
Aceasta eroare are doua cauze probabile. In primul rand ati desearcat pachetul J2SDK dar nu l-ati
instalat. In acest caz trebuie ca mai intai sa instalati pachetul J2SDK. In al doilea rand ati instalat
pachetul dar nu ati inclus subdirectorul bin din J2SDK in calea de acces a calculatorului. In acest
caz trebuie sa includeti subdirectorul bin in calea de acces.
• " ... should be declared in a file named ..." (... ar trebui sa fie declarata intrun fisier numit...)
Daea vedeti acest text ca parte a mesajului afisat pe ecran dupa ce incercati sa compilati programul
Java probabil nu ati scris numele exact asa cum apar in acest capitol. Numele fisierelor trebuie sa fie
scrise exact ca aici tinand seama de literele mari si cele mici. Verificati inca odata numele.
• javac: invalid flag: (javac: semnalizator invalid:) Daca vedeti acest mesaj urmat de o lista lunga de
cuvinte care incep cu o liniuta de despartire probabil compilatorul nu poate gasi fisierul sursa Java.
Afisati directorul curent pt a va asigura ea fisierul HelloWorld.java se afla in acel director.
Daca nu-l gasiti salvati-l inca odata in acel director. De asemenea este posibil sa fi scris gresit
numele fisierului atunci cand ati incercat sa-l compilati.
Incercati inca odata asiguranduva ca numele fisierului este scris corect. O alta eroare frecventa este
omiterea extensiei fisierului. La compilare trebuie sa specificati extensia .java.
• HelloWorld.java:6: ';' expected De fiecare data cand vedeti un mesaj de eroare care contine
cuvantul expected puteti banui ca a aparut o eroare de sintaxa. O eroare de sintaxa apare atunci cand
compilatorul nu intelege ceva ce ati scris in program. Mesajul este urmat de obicei de partea din
program pe care compilatorul nu a inteleso. Iata cum rezolvati aceasta problema: numarul afisat
in mesaj dupa numele fisierului indica linia din program pe care este probabil sa fi aparut eroarea.
In acest exemplu linia 6 este cea care a generat eroarea. Dupa numarul liniei este specificata sintaxa
pe care compilatorul se astepta sa o gaseasca in program. In acest exemplu compilatorul se astepta
sa gaseasca un caracter punct si virgula. De asemenea uitativa cu atentie la codul afisat impreuna cu
mesajul. Veti vedea un accent circumflex \ care indica locul in care compilatorul a descoperit
problema. Avand toate aceste indicii nu aveti altceva de facut decat sa afisati programul Java in
editorul de text sa faceti corecturile necesare si sa recompilati programul.

Rularea unui program Java


Dupa ce ati reusit sa compilati programul Java este timpul sa-l rulati. Scrieti urmatoarea comanda si
apasati tasta ENTER: java HelloWorld
Ar trebui sa vedeti mesajul "Hello world!" afisat pe ecran in fereastra Command Prompt.
Daca nu vedeti acest mesaj este posibil sa fi aparut una dintre urmatoarele probleme:
• 'java' is not recognized as an internal or external command, operable program or batch file
('java' nu este recunoscut ca o comanda interna sau externa, program executabil sau fisier de
comenzi). Asigurativa ca masina virtuala Java este instalata pe calculatorul dv. Daca nu este
instalata descarcati masina virtuala pt calculatorul dv de pe siteul pva.sun.com.
• Exception in thread "main" java.lang.NoClassDefFoundError: (Exceptie in firul de executie
"main" java.lang.NoClassDefFoundError:) Probabil ati introdus HelloWorld.java sau HelloWorld.
class in loc de HelloWorld atunci cand ati incercat sa rulati programul. Nu includeti extensia
fisierului la rularea programului Java.

Analiza pe componente a unui program Java


Ati compilat si rulat primul dv program Java asa ca acum este timpul sa studiem cu mai mare
atentie modul de functionare a programului HelloWorld. Programul este format din trei parti:
definitia clasei, definitia metodei si o instructiune.

Definitia clasei
Definitia clasei din programul Hello World contine toate elementele necesare programului pt a afisa
pe ecran mesajul "Hello world !". Definitia clasei este compusa din urmatoarele elemente:
• Cuvantul cheie class
• Numele clasei
• Corpul clasei
Cuvantul cheie class informeaza compilatorul ca definiti o clasa. Cuvantul cheie class trebuie sa fie
urmat de numele clasei. In acest exemplu numele clasei este Hello World. Numele clasei din
programul Hello World trebuie sa fie exact acelasi cu numele de fisier al programului. Cele doua
nume trebuie sa fie identice altfel este generata o eroare atunci cand compilati programul.
Observati ca numele clasei este format din doua cuvinte: Hello si World. Java nu permite folosirea
spatiilor in numele claselor totusi este bine se scrieti cu majuscula initiala fiecare cuvant din numele
clasei. In acest fel numele sunt mai usor de citit atat pt dv cat si pt alti programatori.
Corpul clasei este locul in care sunt declarate atributele si sunt definite metodele.
Corpul clasei incepe cu o acolada deschisa { si se termina cu o acolada inchisa } .
Cuvantul cheie class
Numele clasei
Acolada deschisa
class HelloWorld {
Acolada illchisa
Definitia clasei trebuie sa contina aceste elemente.
} Corpul c1asei

Definitia metodei
Mai devreme in acest capitol ati invatat ca o clasa are doua componente. Acestea sunt atributele si
comportamentele care sunt numite metode. Un atribut este un element de date asociat clasei in timp
ce o metoda reprezinta functionalitatea clasei. Atributele sunt o parte optionala a claselor dar orice
aplicatie Java trebuie sa defineasca o metoda main( ).
Metoda main( ) prezentata in figura 1-3 este locul din care incepe orice program Java.
Definitia unei metode include urmatoarele elemente:
• Numele metodei
• Argumentele metodei
• Corpul metodei
• Valoarea returnata de metoda
Numele metodei este folosit pt identificarea metodei si pt apelarea acesteia ori de cate ori programul
trebuie sa execute functionalitatea asigurata de metoda. Veti invata totul despre metode in capitolul
6. Pt moment trebuie sa retineti doar ca masina virtuala Java apeleaza metoda main( ) atunci cand
rulati un program.
Argumentele metodei sunt datele identificate intre paranteze1e din dreapta numelui metodei si
folosite de metoda pt a asigura functionalitatea necesara. Metoda main din programul HelloWorld
are un singur argument: String args[ ]. Veti invata despre acest argument in capitolul 6. Pt moment
nu vom discuta despre acest argument deoarece programul HelloWorld nu-l foloseste.
Corpul metodei este locul in care plasati instructiunile care cer calculatorului sa execute
functionalitatea specifica. Corpul metodei este delimitat de o pereche de acolade similare celor
folosite pt corpul clasei. Instructiunile continute in corpul metodei sunt executate secvential.
Programul se termina atunci cand este executata ultima instructiune din metoda main( ).
Numele metodei
Lista de argumente a metodei
class HelloWorld {
public static void main
String args[]
Corpul metodei { }
Metoda nu retumeaza nicio valoare Figura 1-3
Toate aplicatiile Java au o metoda main( ) deoarece acesta este punctul de intrare al aplicatiei.
Valoarea returnata de metoda reprezinta informatiile returnate de metoda catre partea de program
care ia cerut sa execute ceva. Asa cum veti invata in capitolul 6 nu toate metodele returneaza valori.
In acest exemplu metoda main( ) nu returneaza nicio valoare.
Ca urmare trebuie sa precedati numele metodei cu cuvantul cheie void care indica faptul ca nu
exista o valoare returnata.
Veti observa alte doua cuvinte cheie folosite impreuna cu numele metodei main( ): public si static.
Cuvantul cheie public inseamna ca metoda poate fi apelata din afara definitiei clasei.
Metoda main( ) este publica deoarece este apelata de masina virtuala Java. Cuvantul cheie static
este un subiect avansat despre care vom discuta in capitolul 6. Pt moment este suficient sa retineti
ca acest cuvant cheie trebuie sa apara in definitia metodei main( ).

Instructiuni
Asa cum ati invatat mai devreme in acest capitol o instructiune va permite sa cereti calculatorului sa
faca ceva. Exemplul nostru contine o singura instructiune care cere calculatorului sa afiseze pe
ecran textul "Hello world!". Dupa cum se poate vedea in figura 1-4 aceasta instructiune apeleaza
una din metodele standard din Java: println( ). Veti invata despre metoda println( ) in capitolul 5.
Pt moment este important sa intelegeti ca rolul metodei println( ) este de a afisa date pe ecran.
Totusi trebuie sa-i spuneti metodei println( ) ce date vreti sa afiseze.
Faceti acest lucru specificand datele respective intre paranteze atunci cand apelati metoda println( ).
In acest caz intre paranteze sunt plasate cuvintele "Hello world !" care sunt apoi afisate pe ecran.
In sfarsit toate instructiunile dintrun program Java trebuie sa se termine cu un caracter punct si
virgula ; .
Altfel compilatorul nu va recunoaste instructiunea si probabil va afisa un mesaj de eroare atunci
cand incercati sa compilati programul.
class HelloWorld {
public static void main ( String args[] ) {

Instructiune
System.out.println("Hello world!"); } }
Apelarea unei metode pt afisarea unui text
Figura 1·4
Caracter punct si virgula
Textul afisat pe ecran
Aceasta instructiune cere masinii Java sa afiseze pe ecran textul "Hello world!"

Java fara mistere intrebari recapitulative


1. Ce este un compilator ? Un compilator este un program care translateaza un program scris intrun
limbaj de programare de nivel inalt in cod de octeti sau cod obiect in functie de limbajul in care este
scris programul.
2. Ce este un limbaj de programare de nivel inalt ? Un limbaj de programare de nivel inalt contine
cuvinte asemanatoare cu cele din limba engleza folosite de programatori pt a instrui calculatorul sa
execute functii specifice.
3. Ce este limbajul masina ? Limbajul masina este singurul limbaj inteles de un calculator.
Instructiunile scrise in limbaj masina sunt formate din siruri de zero si unu.
4. Care este principala diferenta dintre C si Java ? Principala diferenta dintre C si Java este faptul ca
Java permite programatorilor sa defineasca clase. In C nu pot fi definite clase.
5. Care este principala diferenta dintre C++ si Java ? Principala diferenta dintre C++ si Java este
faptul ca un program Java poate fi rulat pe diferite tipuri de calculatoare fara a fi recompilat. Un
program C++ trebuie sa fie recompilat pt a fi rulat pe un alt tip de calculator.
6. Ce este codul de octeti ? Codul de octeti este cod Java compilat care poate fi executat pe orice
calculator pe care ruleaza o masina virtuala Java.
7. Ce este masina virtuala Java ? Masina virtuala Java este un program care interpreteaza codul de
octeti Java.
8. Care este scopul metodei main( ) dintro aplicatie Java ? Metoda main( ) dintro aplicatie Java este
punctul de intrare al aplicatiei.
9. Este obligatoriu ca orice clasa Java sa aibe declarat un atribut ? Nu. Puteti defini o clasa Java fara
sa declarati un atribut ca membru al clasei.
10. Ce se intampla dupa ce este executata ultima instructiune din metoda main( ) ? Dupa ce este
executata ultima instructiune din metoda main( ) aplicatia Java se termina.

S-ar putea să vă placă și