Sunteți pe pagina 1din 38

Tutorial BlueJ

versiunea 2.0.1 pentru BlueJ versiunea 2.0.x

Michael Kolling Maersk Institute University of Southern en!ark "ra#ucere #e Dumitrascu Irina si Popa Adrian
Copyright M. Kolling Pag 1 din 38

Cuprins 1 1.1 1.2 1.3 1.4 2 2.1 2.2 2.3 2.4 $ 3.1 3.2 3.3 3.4 3.( 3.. 3./ 4 4.1 4.2 5 (.1 (.2 (.3 (.4 Cuvant de inceput Despre BlueJ Audienta tinta Copyright li!enta si redistri"utie #eed"a!$ Instalare %nstalare pe &indo's %nstalare pe Ma!intosh %nstalare pe )inu*+,ni* si alte siste-e Pro"le-e la instalare Inceputul editarea, compilarea si executia Pornirea BlueJ Des!hiderea unui proie!t Crearea o"ie!telor 1*e!utia 1ditarea unei !lase Co-pilarea A2utor la erorile de !o-pilare !acand mai multe""" %nspe!tie 3ri-iterea o"ie!telor !a para-etrii Crearea unui proiect nou Crearea dire!torului proie!tului Crearea !laselor Crearea dependintelor 1li-inarea ele-entelor 8 0 0 11 13 14 14 15 1( 1/ 1# 10 10 10 24 4 4 4 4 4 5 ( ( . /

Copyright M. Kolling

Pag 2 din 38

$ ..1 ..2 ..3 ..4 ..( ... ../ ..8 % /.1 /.2 /.3 /.4

%tili&area 'code pad' A5isarea 6!ode pad6 17aluarea e*presiilor si-ple Pri-irea o"ie!telor %nspe!tarea o"ie!telor 1*e!utia !o-en8ilor Co-en8i -ultilinie si se!7ente de !o-en8i )u!rul !u 7aria"ilele %stori!ul liniei de !o-anda De(u))in) 9etarea de "rea$point:uri Par!urgerea !odului pas !u pas %nspe!tarea 7aria"ilelor ;prirea progra-ului Crearea de aplicatii de sine statatoare

21 21 22 22 23 23 24 24 2( 2$ 2. 28 28 20 *+ *2 32 33 33 *4 34 34 34 3( 3( 3( *.

# 0.1 0.2 0.3 1+

Crearea applet,urilor <ularea unui applet Crearea unui applet 3estarea unui applet Alte operatii

14.1 Des!hiderea pa!hetelor non:BlueJ in BlueJ 14.2 Adaugarea !laselor e*istente in proie!t 14.3 Apelul -ain=> si a altor -etode stati!e 14.4 ?enerarea do!u-entatiei 14.( )u!rul !u "i"liote!i 14.. Crearea o"ie!telor din !lasele de "i"liote!a 11 -e&umat

Copyright M. Kolling

Pag 3 din 38

1 Cuvant de inceput 1"1 Despre BlueJ &cest tutorial este o intro#ucere in !e#iul #e progra!are BlueJ. BlueJ este un !e#iu #e #e'voltare Java( reali'at special pentru a pre#a progra!are la un nivel intro#uctiv. )l a fost proiectat si i!ple!entat #e echipa BlueJ #e la Universitatea eakin #in Mel*ourne+ &ustralia si #e Universitatea Kent #in ,ante*ury+ UK. Mai !ulte infor!atii #espre BlueJ puteti gasi la http-..///.*lue0.org 1"2 Audienta tinta &cest tutorial este #estinat persoanelor care vor sa se fa!iliari'e'e cu capacitatiile acestui !e#iu #e #e'voltare. )l nu explica #eci'iile luate in #e'voltarea !e#iului sau pro*le!ele #e care s1a lovit in sta#iul #e cercetare. &cest tutorial nu este !enit sa fie un ghi# #e progra!are in Java. 2rogra!atorii incepatori in Java sunt sfatuiti sa citeasca si un tutorial #e Java sau sa ia parte la un curs Java. &cesta nu e un tutorial atotcuprin'ator. Multe #etalii au fost o!ise pentru a se accentua asupra unei intro#uceri scurte si concise in locul unei pre'entari a!anuntite. 2entru #etalii ulterioare consultati 3he BlueJ 1n7iron-ent <e5eren!e Manual #isponi*il pe site1ul BlueJ. 3iecare sectiune incepe cu o fra'a care re'u!a continutul sectiunii. &cest lucru per!ite cititorilor care cunosc parti #in siste! sa #eci#a #aca vor sa citeasca acea sectiune sau #aca trec !ai #eparte. Sectiunea 11 repeta aceste fra'e+ pentru a fi !ai usor #e ur!arit structura tutorialului. 1"* Cop/ri)0t, licenta si redistri(utie Siste!ul BlueJ si tutorialul sunt #istri*uite 4asa cu! sunt4+ gratuit pentru folosire sau re#istri*utie non1co!erciala. e'asa!*larea siste!ului este inter'isa. 5ici o parte a siste!uluiBlueJ sau a #ocu!entatiei nu poate fi van#uta sau inclusa intr1 un pachet care este van#ut fara apro*area in scris a autorilor. ,opyright1ul 6 pentru BlueJ este #etinut #e M. Kolling si J. 7osen*erg. 1"4 !eed(ac1 ,o!entarii+ corectii+ intre*ari si critici legate #e siste!ul BlueJ sau #e tutorial sunt *ine venite si incura0ate. 8a ruga! sa le tri!iteti lui Michael Kolling 9!ik:!ip.s#u.#k;

Copyright M. Kolling

Pag 4 din 38

2" Instalare BlueJ e #istri*uit in $ for!ate #istincte- unul pentru <in#o/s+ unul pentru Mac=S+ si unul pentru restul siste!elor. Instalarea este #estul #e si!pla. 1le-ente ne!esare "re*uie sa aveti instalat inainte Java2S) v 1.> 9a#ica J K 1.>; sau o versiune !ai noua pentru a folosi BlueJ. In general este reco!an#ata trecerea la cea !ai noua versiune sta*ila 9non1*eta;. aca nu aveti un J K instalat+ puteti sa1l #o/nloa#ati #e pe site1ul Sunhttp-..0ava.sun.co!.02se. . 2e Mac=S ? o versiune recenta #e J2S) e preinstalata @ asa ca nu !ai e nevoie sa o instalati !anual. aca gasiti o pagina care va ofera sa #o/nloa#ati J7) 9Java 7unti!e )nviron!ent; si S K 9Soft/are evelop!ent Kit;+ tre*uie sa #o/nloa#ati S K #eoarece J7) nu e suficient. 2"1 Instalare pe 2indo3s 3isierul prin care e #istri*uit BlueJ pe siste!e <in#o/s se nu!este "lue2setup:***.e*e+ un#e *** e nu!arul versiunii. e exe!plu+ BlueJ versiunea 2.0.0 are fisierul "lue2setup: 244.e*e. 2uteti o*tine fisierul #e pe un #isc+ sau il puteti incarca #e la site1ul BlueJ @ http-..///.*lue0.org. Aansati in executie installer1ul. Installer1ul va per!ite sa alegeti #irectorul in care vreti sa instalati. 8a oferi si posi*ilitatea #e a creea o scurtatura pe esktop sau in Start Menu. upa ce se incheie instalarea+ puteti gasi fisierul "lue2.e*e in #irectorul #e instalare a BlueJ1ului. 2ri!a #ata can# lansati BlueJ+ el va cauta un siste! J K. aca #escopera !ai !ult #e un siste! J K potrivit 9#e exe!plu aveti instalat J K 1.>.2 si J K 1.B.0; o fereastra #e #ialog va va intre*a pe care #oriti sa1l folositi. aca nu gaseste nici unul va va ruga sa ii specificati !anual calea catre J K 9acest lucru se poate inta!pla can# un J K a fost instalat+ #ar intrarile acestuia #in registry au fost sterse;. Installer1ul BlueJ instalea'a si un progra! nu!it 7-sele!t.e*e. 3olosin# acest progra! puteti hotara !ai tar'iu ce !asina virtuala sa foloseasca BlueJ1ul. &legerea J K1ului este salvata pentru fiecare versiune #e BlueJ. aca aveti versiuni #iferite #e BlueJ instalate+ puteti folosi o versiune cu J K 1.>.2 si alta cu J K 1.B.0. Schi!*area versiunii Java pentru BlueJ va !o#ifica versiunea pentru toate instalarile BlueJ #e aceeasi versiune pentru un user. 2"2 Instalare pe 4acintos0 &veti in ve#ere ca BlueJ rulea'a #oar pe Mac=S ?. 3isierul prin care e #istri*uit BlueJ pentru Mac=S se nu!este BlueJ:***.8ip+ un#e *** este versiunea. e exe!plu+ BlueJ versiunea 2.0.0 are fisierul BlueJ:244.8ip. 2uteti o*tine
Copyright M. Kolling Pag ( din 38

fisierul #e pe un #isc+ sau il puteti incarca #e la site1ul BlueJ @ http-..///.*lue0.org. Mac=S #e o*icei #eco!pri!a fisierul i!e#iat #upa #o/nloa#. aca nu a facut asta+ efectuati un #u*lu1click pe fisier pentru a1l #eco!pri!a. upa #eco!presie veti o*tine un #irector nu!it BlueJ:***. Mutati acest #irector in #irectorul &pllications 9sau oriun#e #oriti sa il tineti;. 5u !ai este nevoie #e alte actiuni pentru instalare. 2"* Instalare pe 5inux6%nix si alte sisteme 3or!atul general in care e #istri*uit BlueJ pentru astfel #e siste!e este un fisier 0ar executa*il. )l e nu!it "lue2:***.2ar+ un#e *** e versiunea. e exe!plu+ BlueJ versiunea 2.0.0 are fisierul "lue2:244.2ar. 2uteti o*tine fisierul #e pe un #isc+ sau il puteti incarca #e la site1ul BlueJ @ http-..///.*lue0.org. 7ulati installer1ul executan# ur!atoarea co!an#a. 5="&- 2entru exe!plu a! folosit fisierul "lue2:244.2ar @ tre*uie sa folositi nu!ele fisierului pe care l1ati o*tinut 9cu versiunea corecta;. <calea_catre_j2se>/bin/java -jar bluej-200.jar <calea_catre_j2se> e calea catre #irectorul in care a fost instalat J2S) S K. 8a aparea o fereastra in care puteti alege locul in care se va face instalarea si versiunea #e Java ce va fi folosita #e BlueJ. &pasati %nstall. upa ce ter!ina+ BlueJ ar tre*ui sa fie instalat.

Copyright M. Kolling

Pag . din 38

2"4 Pro(leme la instalare aca aveti orice fel #e pro*le!e+ vi'itati sectiunea #re@uently As$ed Auestions =#AA> #e pe site1ul BlueJ 9http-..///.*lue0.org.help.faC.ht!l; si cititi sectiunea Bo' to as$ 5or help 9http-..///.*lue0.org.help.ask1help.ht!l;.

Copyright M. Kolling

Pag / din 38

*" Inceputul editarea, compilarea si executia *"1 Pornirea BlueJ 2e siste!ele <in#o/s si Mac=S se instalea'a un progra! nu!it BlueJ. 7ulati1l. 2e siste!e U5I? installer1ul creea'a un script nu!it "lue2 in #irectorul instalarii. intr1o interfata grafica #ati #u*lu click pe fisier. in linia #e co!an#a puteti lansa BlueJ cu sau fara un proiect ca argu!ent$ bluej sau $ bluej examples/people

!i) 1" !ereastra centrala BlueJ

Copyright M. Kolling

Pag 8 din 38

*"2 Desc0iderea unui proiect <e8u-atC Pentru a des!hide un proie!t sele!tati =pen din -eniul 2ro0ect. 2roiectele BlueJ+ ca si pachetele stan#ar# Java+ sunt #irectoare ce contin fisierele incluse in proiect. upa pornirea BlueJ+ folositi !eniul Pro2e!t D ;pen... pentru a selecta si #eschi#e un proiect. ,ateva proiecte sunt incluse pe post #e exe!ple in #istri*utia BlueJ stan#ar# in #irectorul e*a-ples. In aceasta sectiune #e tutorial+ #eschi#eti proiectul people+ care este inclus in acest #irector. 2uteti gasi #irectorul e*a-ples in #irectorul #e instalare al BlueJ. upa ce #eschi#eti proiectul puteti ve#ea ceva si!ilar cu 3ig 1. 3ereastra nu va arata exact la fel pe siste!ul #u!neavoastra+ #ar #iferentele sunt !inore. *"* Crearea o(iectelor <e8u-atC Pentru a !reea un o"ie!t sele!tati un !onstru!tor din -eniul pop:up al !lasei. = caracteristica fun#a!entala a BlueJ1ului este ca puteti executa o aplicatie intreaga+ #ar puteti si interactiona #irect cu o*iecte ale oricarei clase si le puteti executa !eto#ele pu*lice. )xecutia in BlueJ este facuta #e o*icei prin crearea unui o*iect si apoi invocarea unei !eto#e a o*iectului. &cest lucru este foarte util in ti!pul #e'voltarii aplicatiei @ puteti testa clasele i!e#iat ce au fost scrise. 5u este nevoie sa fie scrisa toata aplicatia #e la inceput. NOTA: Metodele statice pot fi executate direct, fara a necesita crearea unui obiect. Una din metodele statice poate fi main(), asa ca putem face aceleasi lucruri care se petrec intr-o aplicatie Java normala pornirea aplicatiei prin rularea unei metode statice. Vom reveni la acest aspect mai tarziu. In primul rand vom face anumite lucruri, mai interesante, ce nu pot fi facute in mod normal intr-un mediu Java. reptunghiurile ce pot fi o*servate in fereastra centrala 9nu!ite Data"ase+ Person 9ta55 si 9tudent; sunt pictogra!e ce repre'inta clasele i!plicate in aplicatie. 2uteti o*tine un !eniu cu actiuni referitoare la o clasa apasan# pe pictogra!a ei cu *utonul #rept 9MacintoshctrlDclick1; 93ig 2;. =peratiunile aratate apelea'a ne' pentru fiecare #in constructorii #efiniti pentru aceasta clasa 9pri!a; ur!ate #e #iferite operatii puse la #ispo'itie #e !e#iu.

1 ,an# vo! !ai !entiona click #reapta in acest tutorial+ utili'atorii #e Macintosh tre*uie sa foloseasca !trlE!li!$ Copyright M. Kolling Pag 0 din 38

!i) 2" 7peratiuni cu clasa 8meniu pop,up9 ori! sa cree! un o*iect 9ta55 asa ca tre*uie sa #a! click #reapta pe pictogra!a 9ta55 9ceea ce #uce la afisarea !eniului #in figura 2;. Meniul in#ica #oi constructori pentru a creea un o*iect 9ta55+ unul cu para!etrii si altul fara. Mai intai alegeti constructorul fara para!etrii. 8a aparea fereastra #in figura $.

!i) *" Crearea o(iectelor :ara parametrii 3ereastra #e #ialog va cere un nu!e pentru o*iectul creat. In acelasi ti!p un nu!e i!plicit 9sta551; este sugerat. 5u!ele i!plicit este suficient #e *un pentru acu!+ asa ca apasati =k. Un o*iect 9ta55 va fi creeat. I!e#iat ce o*iectul este creeat+ el va fi plasat in o*0ect *ench 93ig >;. Aa asta se re'u!a crearea o*iectelor- selectati un constructor #in !eniul clasei+ executati1l si va alegeti
Copyright M. Kolling Pag 14 din 38

cu un o*iect in o*0ect *ench.

!i) 4" %n o(iect in o(;ect (enc0 2ro*a*il ca ati o*servat ca clasa Person e etichetata EEa*stractFF 9e o clasa a*stracta;. 8eti o*serva 9#aca incercati; ca nu puteti creea o*iecte #in clase a*stracte 9specificatia Java inter'ice acest lucru;. *"4 <xecutia <e8u-atC Pentru a e*e!uta o -etoda sele!tati:o din -eniul pop:up al o"ie!tului. &cu! ca ati creeat un o*iect+ puteti sa1i executati !eto#ele pu*lice. ati un click cu *utonul #rept al !ouse1ului pe o*iect si un !eniu cu !eto#ele o*iectului va aparea 93ig B;. Meniul in#ica !eto#ele #isponi*ile pentru acest o*iect si #oua operatii speciale specificate #e !e#iu 9%nspe!t si <e-o7e;. &cestea vor fi #iscutate !ai tar'iu. Mai intai sa ne concentra! asupra !eto#elor.

!i) 5" 4eniul o(iectului Se ve#e ca exista !eto#ele set<oo-=> si get<oo-=> care setea'a si returnea'a nu!arul ca!erei pentru acest !e!*ru 9ta55. Incercati sa apelati get<oo-=>. Selectati1o #in !eniul o*iectului si ea va fi executata. = fereastra #e #ialog va aparea si va afisa re'ultatele apelului 93ig G;. In acest ca' este returnat Fun$no'n roo-G pentru ca nu a! specificat o ca!era pentru aceasta persoana.

Copyright M. Kolling

Pag 11 din 38

!i) $" A:isarea re&ultatului unei metode Meto#ele !ostenite #e la o superclasa sunt #isponi*ile printr1un su*!eniu. easupra !eniului pop1up pentru o*iect sunt #oua su*!eniuri+ unul pentru !eto#e !ostenite #e la ;"2e!t si altul pentru !eto#e !ostenite #e la Person 9fig B;. 2uteti apela !eto#e ale clasei Person 9cu! ar fi getHa-e=>; selectan#u1le #in su*!eniu. Incercati asta. 8eti o*serva ca raspunsul este la fel #e vag- raspunsul este Fun$no'n na-eG #eoarece nu a! #at persoanei noastre un nu!e. &cu! sa incerca! sa specifica! un nu!ar al ca!erei. &cest lucru va in#ica cu! sa apela! o !eto#a cu para!etrii. 9&pelurile catre get<oo-=> si getHa-e=> aveau tip #e #ate #e intoarcere+ #ar nu aveau para!etrii;. &pelati !eto#a set<oo-=> selectan#1o #in !eniu. 8a aparea o casuta #e #ialog care va cere un para!etru 9fig %;.

!i) .= !ereastra pentru apelul metodei cu parametrii easupra+ fereastra in#ica interfata !eto#ei ce va fi che!ata 9inclu'an# co!entariul si se!natura;. Mai 0os exista un ca!p #e text in care poate fi intro#us para!etrul. Se!natura #e #easupra ne infor!ea'a ca se asteapta un para!etru #e tip 9tring. Intro#uceti valoarea pentru o ca!era noua inclusiv ghili!elele si apasati =k. Hata. eoarece !eto#a nu returnea'a ni!ic+ nu !ai apare fereastra cu re'ultatele. &pelati get<oo-=> #in nou pentru a ve#ea ca s1a facut o schi!*are. )xperi!entati o vre!e cu crearea o*iectelor si apelul !eto#elor. Incercati sa apelati un constructor cu para!etrii si apelati !ai !ulte !eto#e pana va fa!iliari'ati cu aceste operatii.

Copyright M. Kolling

Pag 12 din 38

*"5 <ditarea unei clase <e8u-atC Pentru a edita sursa unei !lase dati du"lu !li!$ pe pi!togra-a !lasei. 2ana acu! a! lucrat #oar cu interfata unui o*iect. &cu! e !o!entul sa privi! inauntru. 2uteti sa aveti acces la co#ul clasei selectan# ;pen 1ditor #in !eniul clasei 9#an# click #reapta pe pictogra!a clasei se o*tine !eniul clasei;. aca #ati #u*lu click pe pictogra!a clasei veti apela auto!at ;pen 1ditor. )#itorul nu este pre'entat in !are #etaliu in acest tutorial+ #ar se presupune ca e usor #e folosit. etalii legate #e e#itor vor fi pre'entate !ai tar'iu. 2entru !o!ent #eschi#eti i!ple!entarea clasei 9ta55. Hasiti i!ple!entarea !eto#ei get<oo-=>. )a returnea'a+ asa cu! sugerea'a nu!ele+ nu!arul ca!erei in care este o*iectul. Sa !o#ifica! !eto#a a#augan# prefixul Iroo-G re'ultatului !eto#ei 9pentru ca !eto#a sa returne'e+ sa 'ice! Iroo! M.$.1JK in loc #e IM.$.1JK;. 2ute! face acest lucru !o#ifican# linia return room; la return room + room; BlueJ suporta Java nativ+ asa ca nu exista nici o particularitate asupra cu! va i!ple!entati clasele. *"$ Compilarea <e8u-atC Pentru a !o-pila o !lasa apasati "utonul ,o!pile din editor. Pentru a !o-pila un proie!t apasati ,o!pile din 5ereastra proie!tului. upa ce ati inserat textul+ si inainte #e a face altceva verificati proiectul principal 9fereastra principala;. 2uteti o*serva ca pictogra!a pentru clasa 9ta55 s1a !o#ificat- acu! este #ungata. &cest !o# #e repre'entare in#ica clasele care nu au fost reco!pilate #e la ulti!a !o#ificare. Intorceti1va la e#itor.

NOTA: robabil ca va intrebati de ce picto!ramele claselor nu erau dun!ate cand ati incarcat proiectul. "cest lucru se datoreaza faptului ca clasele din proiectul people au fost distribuite de#a compilate. $e obicei proiectele %lueJ sunt distribuite necompilate, asa ca obisnuiti-va sa vedeti picto!ramele claselor dun!ate de acum inainte In *ara #e *utoane a e#itorului sunt repre'entate functiile cele !ai #es folosite. Una #intre ele este Co-pile. &cest *uton va per!ite sa co!pilati clasa #irect #in e#itor. &cu! apasati pe Co-pile. aca nu ati facut nici o greseala tre*uie sa apara un !esa0 in 'ona infor!ationala a e#itorului+ instiintan#u1va ca nu este nici o eroare. 9In ca'ul in care co!pilarea a !ers cu succes+ intro#uceti o eroare in co#ul sursa @ cu! ar fi un 4L4 lipsa #oar ca sa ve#eti cu! arata;.
Copyright M. Kolling Pag 13 din 38

upa ce ati co!pilat clasa cu succes+ inchi#eti e#itorul. NOTA: &u e nevoie sa salvati explicit sursa #ava. 'ursele sunt salvate automat cand mediul considera ca e necesar (de ex cand se inc(ide editorul, sau cand e compilata clasa). uteti salva explicit daca doriti (este o functie in meniul Class al editorului), dar nu este necesar decat daca sistemul dvs este foarte nesi!ur si se bloc(eaza frecvent, iar dvs doriti sa nu pierdeti modificarile. Bara #e *utoane a ferestrei proiectului are un *uton Co-pile. &ceasta operatiune co!pilea'a tot proiectul. 9 e fapt afla care clase tre*uiesc reco!pilate si le co!pilea'a in or#inea i!pusa;. Incercati acest lucru !o#ifican# #oua1trei clase 9astfel incat sa apara hasurate in #iagra!a #e clase; si apoi apasati *utonul Co-pile. aca se #etectea'a o eroare intr1una #in clasele co!pilate+ e#itorul va fi #eschis si se va afisa linia eronata si va fi afisat un !esa0 #e eroare. 2uteti o*serva ca 'ona 4o*0ect *ench4 este goala #in nou. =*iectele sunt eli!inate #e fiecare #ata can# se schi!*a i!ple!entarea. *". A;utor la erorile de compilare <e8u-atC Pentru a o"tine a2utor in !a8ul unei erori de !o-pilare apasati pe se-nul intre"arii de langa -esa2ul de eroare. estul #e #es stu#entii incepatori au pro*le!ele in a intelege !esa0ele #e eroare furni'ate #e co!pilator. 5oi incerca! sa oferi! putin a0utor supli!entar. eschi#eti e#itorul #in nou+ intro#uceti o eroare in fisierul sursa si co!pilati. Un !esa0 #e eroare va fi afisat in *ara #e infor!atii a e#itorului. In partea #reapta a 'onei infor!ationale apare un se!n #e intre*are ce poate fi apasat pentru a afla !ai !ulte infor!atii #espre eroare 93ig J;.

!i) = 7 eroare de compilare si (utonul Help In acest !o!ent nu au fost scrise texte pentru toate !esa0ele #e eroare. Unele texte explicative tre*uie sa fie scrise. ar !erita sa incercati @ erorile u'uale au texte explicative. 7estul textelor vor fi a#augate pe parcurs+ in versiunile ur!atoare #e BlueJ.

Copyright M. Kolling

Pag 14 din 38

4 !acand mai multe""" In aceasta sectiune vo! pre'enta o serie #e lucruri ce pot fi facute in !e#iul #e #e'voltare. &ceste lucruri nu sunt esentiale+ #ar sunt folosite a#esea. 4"1 Inspectie <e8u-atC %nspe!tia per-ite e5e!tuarea unui de"ugging si-plu a5isand starea interna a o"ie!telor. ,an# executati !eto#e ale unui o*iect+ puteti o*serva operatiunea %nspe!t care este #isponi*ila pentru o*iecte+ in afara !eto#elor #efinite #e utili'ator 93ig B;. &ceasta operatie per!ite verificarea starii interne a varia*ilelor #e instanta 9Ica!puriK; ale o*iectelor. Incercati sa creeati un o*iect cu niste valori #efinite #e utili'ator 9#e ex un o*iect 9ta55 instantiat cu constructorul care ia para!etrii;. &poi alegeti %nspe!t #in !eniul o*iectului. &pare o casuta #e #ialog care pre'inta ca!purile o*iectului+ tipurile lor si valorile lor 93ig M;.

!i) #= !ereastra de dialo) Object Inspector Inspectarea e folosita pentru a afla rapi# #aca o operatie !utator 9o operatie care schi!*a starea interna a o*iectului; a fost executata corect. &stfel+ inspectia e o unealta si!pla pentru #e*ugging. In exe!plul 9ta55 toate ca!purile sunt tipuri si!ple 9ori nu sunt o*iecte+ ori sunt string1 uri;. 8aloarea acestora poate fi afisata #irect. Se poate o*serva cu ochiul li*er #aca constructorul a facut asocierile necesare. In ca'uri !ai co!plexe+ valorile ca!purilor pot fi referinte catre o*iecte create #e utili'ator. 2entru a ve#ea un ase!enea exe!plu+ vo! folosi un alt proiect. eschi#eti proiectul people2+ care este inclus #e ase!enea in #istri*utia stan#ar# BlueJ. ,lasele proiectului people2 sunt pre'entate in 3ig 10. ,u! puteti o*serva+ acest exe!plu are in plus o clasa Address pe langa cele pre'entate inainte. Unul #in ca!purile #in Person e #e tipul Address.

Copyright M. Kolling

Pag 1( din 38

!i)ura 1+= !ereastra proiectului people2 Ur!atorul lucru pe care vre! sa1l incerca! @ inspectarea o*iectelor cu alte o*iecte in ca!puri @ necesita crearea unui o*iect #e tip 9ta55 si apelarea !eto#ei setAddress=> a acestui o*iect 9o veti gasi in su*!eniul Person;. Intro#uceti o a#resa. In interior co#ul clasei 9ta55 creea'a un o*iect #e clasa Address si il asocia'a varia*ilei address. &cu! inspectati o*iectul 9ta55. 3ereastra #e #ialog afisata e pre'entata in 3ig 11. ,a!purile #in o*iectul 9ta55 inclu# acu! si ca!pul address. 2recu! ve#eti+ valoarea sa e repre'entata #e o sageata+ ceea ce repre'inta o referinta catre un alt o*iect. eoarece repre'inta un o*iect co!plex+ #efinit #e utili'ator+ valoarea sa nu poate fi pre'entata #irect in lista. 2entru a exa!ina in continuare a#resa+ apasati pe ca!pul address si apoi pe *utonul %nspe!t. 9 e ase!enea+ puteti #a #u*lu click pe ca!pul address;. 8a fi #eschisa alta fereastra #e inspectie+ aratan# #etaliile o*iectului Address 93ig 12;.

Copyright M. Kolling

Pag 1. din 38

!i) 11= Inspectarea unui o(iect cu re:erinte

!i) 12= Inspectarea unui o(iect intern aca ca!pul selectat este pu*lic+ in loc #e a #a click pe %nspe!t puteti selecta ca!pul #e a#resa si sa apasati *utonul ?et. &ceasta operatie a#uce o*iectul selectat in 4o*0ect *ench4. e acolo il puteti exa!ina !ai in #etaliu+ apelan#u1i !eto#ele. 4"2 Trimiterea o(iectelor ca parametrii <e8u-atC ,n o"ie!t poate 5i tri-is !a para-etru al unei -etode dand !li!$ pe pi!togra-a o"ie!tului =*iectele pot fi tri!ise ca para!etrii !eto#elor altor o*iecte. Sa incerca! ur!atorul lucru. ,reati un o*iect al clasei Data"ase. 98eti o*serva ca clasa Data"ase nu are #ecat un singur constructor fara para!etrii+ #eci crearea o*iectului nu ar tre*ui sa puna pro*le!e;. =*iectul Data"ase are a*ilitatea #e a stoca o lista #e persoane. &re operatii #e a#augare #e persoane si #e listare a tuturor persoanelor !e!orate. 95u!irea aceste clase Data"ase este totusi o exagerareN;.
Copyright M. Kolling Pag 1/ din 38

aca nu aveti #e0a un o*iect 9ta55 sau 9tudent in o*0ect *ench+ creati unul. In continuare aveti nevoie #e un o*iect Data"ase si #e un o*iect 9ta55 sau 9tudent. &cu! apelati !eto#a addPerson=> al o*iectului Data"ase. Se!natura va spune ca se asteapta un o*iect #e tip Person. 97etineti- clasa Person e a*stracta+ asa nu exista o*iecte #irecte #e tip Person. ar+ #in cau'a !ostenirii o*iectele 9tudent si 9ta55 pot tine locul unui o*iect Person. &sa#ar este corect sa tri!ite! ca para!etru un o*iect 9tudent sau 9ta55 acolo un#e se asteapta un o*iect Person;. 2entru a tri!ite un o*iect #e0a existent in o*0ect *ench unei !eto#e+ ii puteti tasta nu!ele+ sau !ai scurt+ puteti #a click pe o*iectul respectiv. &cest lucru ii intro#uce nu!ele in fereastra #e #ialog. &pasati ;$ si se face apelul !eto#ei. eoarece aceasta !eto#a nu are tip #e #ate #e intoarcere+ nu ve#e! i!e#iat un re'ultat. 2uteti apela !eto#a listAll=> a o*iectului Data"ase pentru a verifica ca actiunea a fost in#eplinita. Meto#a listAll=> afisea'a continutul la iesirea stan#ar#. 8eti o*serva ca un ter!inal #e text se va #eschi#e auto!at. Incercati acest lucru #in nou cu !ai !ult #e o persoana intro#usa in I*a'a #e #ateK.

Copyright M. Kolling

Pag 18 din 38

5 Crearea unui proiect nou &cest capitol va face un tur rapi# in crearea proiectelor noi. 5"1 Crearea directorului proiectului <e8u-atC Pentru a !reea un proie!t sele!tati 5e/... din -eniul 2ro0ect. 2entru a creea un proiect nou selectati Pro2e!t D He'... #in !eniu. = fereastra #e #ialog se va #eschi#e si va lasa sa specificati nu!ele si locatia un#e va fi salvat proiectul. upa ce #ati =k+ un #irector va fi creeat cu nu!ele specificat+ iar fereastra principala va afisa un proiect nou gol. 5"2 Crearea claselor <e8u-atC Pentru a !reea o !lasa apasati "utonul 5e/ ,lass si spe!i5i!ati un nu-e de !lasa. 2uteti creea clase noi apasan# *utonul He' Class #in *ara #e *utoane a proiectului. 8eti fi intre*at care este nu!ele acestei clase @ acest nu!e tre*uie sa fie un i#entificator vali# Java. 2uteti #e ase!enea sa alegeti intre patru tipuri #e clase- a*stracte+ interfete+ applet sau Istan#ar#K. &cest lucru i!pune ce co# #e *a'a va fi scris initial in clasa #vs. 2uteti !o#ifica tipul clasei !ai tar'iu e#itan# co#ul sursa 9#e exe!plu a#augan# cuvantul Ia*stractK in #efinitia clasei;. upa crearea unei clase+ ea e repre'entata #e o pictogra!a in proiect. aca nu e o clasa stan#ar#+ tipul 9a*stract+ interfata sau applet; e in#icat in pictogra!a. aca vi'uali'ati co#ul sursa al unei clase nou create+ puteti o*serva ca contine un co# schelet care va per!ite sa va apucati rapi# #e !unca. ,o#ul i!plicit e corect #in punct #e ve#ere sintactic 9#ar nu face !ai ni!ic;. Incercati sa faceti !ai !ulte clase si sa le co!pilati. 5"* Crearea dependintelor <e8u-atC Pentru a !reea o sageata apasati si-"olul sageata si trasati sageata in diagra-a sau doar s!rieti !odul sursa in editor. iagra!a #e clase arata #epen#enta intre clase prin sageti. 7elatii #e tip !ostenire 9Iexten#sK sau Ii!ple!entsK; sunt in#icate ca sageti cu capat golL relatii #e tip IfolosesteK sunt in#icate #e sageti punctate cu capat gol. 2uteti a#auga #epen#inte noi in !o# grafic 9#irect in #iagra!a; sau textual in co#ul sursa. aca a#augati o sageata in !o# grafic+ co#ul este actuali'atL #aca !o#ificati co#ul+
Copyright M. Kolling Pag 10 din 38

#iagra!a este actuali'ata. 2entru a a#auga grafic o sageata+ apasati *utonul cu sageata 9sageata goala pentru Iexten#sK sau Ii!ple!entsK si sageata punctata pentru IfolosesteK; si trageti sageata #e la o clasa la cealalta. &#augarea unei sageti #e !ostenire a#auga co#ul Iexten#sK sau Ii!ple!entsK in co#ul sursa al clasei 9in functie #e tipul tintei- clasa sau interfata;. &#augarea unei sageti #e folosire nu !o#ifica i!e#iat co#ul sursa 9#ecat #aca tinta e o clasa #in alt pachet. In acest ca' se generea'a o co!an#a i-port #ar nu a! intalnit inca acest lucru in exe!plele noastre;. )xistenta unei sageti #e folosire in #iagra!a in#ican# o clasa care nu e folosita+ va genera un avertis!ent !ai tar'iu spunan# ca o relatie #e tip IfolosesteK a fost #efinita catre o clasa+ #ar acea clasa nu a fost folosita. &#augarea sagetilor textual e usor- tastati co#ul in !o# nor!al. I!e#iat ce clasa e salvata+ #iagra!a este actuali'ata. 97etineti ca inchi#erea e#itorului #uce la salvarea auto!ata;. 5"4 <liminarea elementelor <e8u-atC Pentru a eli-ina o !lasa sau o sageata alegeti optiunea 7e!ove din -eniul ei popup. 2entru a eli!ina o clasa #in #iagra!a+ selectati clasa si alegeti <e-o7e #in !eniul 1dit. 2uteti selecta <e-o7e si #in !eniul popup al clasei. &!*ele optiuni functionea'a si pentru sageti- 2uteti inlatura o sageata selectan#1o iar apoi apelan# <e-o7e #in !eniul 1dit+ sau apelan# <e-o7e #in !eniul popup.

Copyright M. Kolling

Pag 24 din 38

$ %tili&and 'code pad' Unealta 4co#e pa#4 #in BlueJ per!ite anali'area rapi#a si usoara a unor #iferite *ucatele #e co#. &stfel co#e pa# poate fi folosit pentru a investiga #etaliile se!anticii Java si pentru a ilustra si experi!enta sintaxa Java. $"1 A:isarea 'code pad' <e8u-atC Pentru a in!epe sa 5olositi !ode pad sele!tati Sho/ co#e pa# din -eniul 8ie/. ,o#e pa# nu e afisat i!plicit. 2entru a1l afisa folositi 9ho' !ode pad #in !eniul Iie'. 3ereastra principala va inclu#e interfata co#e pa# in coltul #in #reapta 0os+ langa o*0ect *ench 93ig 1$;. Ai!itele ori'ontale si verticale pot fi !o#ificate pentru a schi!*a #i!ensiunea co#e pa# sau a o*0ect *ench. Oona co#e pa# poate fi folosita acu! pentru a insera expresii sau *locuri #e prelucrare. ,an# se apasa 1nter fiecare linie e evaluata si e posi*il sa apara un re'ultat.

!i) 1*= !ereastra principala impreuna cu &ona code pad

Copyright M. Kolling

Pag 21 din 38

$"2 <valuarea expresiilor simple <e8u-atC Pentru a e7alua e*presii Ja7a introdu!eti:le in !ode pad. Oona co#e pa# poate fi folosita pentru a evalua expresii si!ple. Incercati sa intro#uceti #e exe!plu4 + 45 hello.length ! "ath.max ##$4! int! ##.% javax.s&ing.'(ption)ane.sho&*nput+ialog null$ ,ame-! )xpresiile se pot referi la valori Java stan#ar# si o*iecte+ #ar si la clase #in proiectul curent. Oona co#e pa# va afisa valoarea #e intoarcere+ #ar si tipu acesteia 9in parante'a;+ sau un !esa0 #e eroare #aca expresia e incorecta. 2uteti folosi si o*iectele pe care le aveti in o*0ect *ench. Incercati ur!atoarelepo'itionati un o*iect #e tip 9tudent in o*0ect *ench 9folosin# !eniul popup al clasei+ asa cu! a! #escris anterior;. 5u!iti1l student1. In co#e pa# puteti tastastu.ent/.get,ame ! In !o# si!ilar puteti apela toate !eto#ele #isponi*ile #in clasele proiectului #vs. $"* Primirea o(iectelor <e8u-atC Pentru a trans5era o"ie!te din !ode pad in o"2e!t "en!h trageti de pi!togra-a o"ie!tului. Unele re'ultate ale expresiilor sunt o*iecte+ si nu si!ple pri!itive. In acest ca'+ re'ultatul e afisat ca Jo"2e!t re5eren!eK+ ur!at #e tipul o*iectului si #e o !ica pictogra!a #esenata langa linia cu re'ultat 93ig 1>;.

!i) 14= %n o(iect re&ultat in urma unei operatii in code pad aca valoarea returnata e un string+ atunci valoarea ei va fi afisata ca re'ultat+ #ar veti ve#ea si o pictogra!a !ica+ #eoarece string1urile sunt o*iecte.

Copyright M. Kolling

Pag 22 din 38

2uteti incerca ur!atoarele expresii pentru a creea o*iectene& 0tu.ent ! marmela.e.substring #$1! ne& java.util.2an.om ! hello + &orl. Mica pictogra!a re'ultata poate fi folosita pentru a lucra in continuare cu o*iectul. 2uteti trage pictogra!a peste o*0ect *ench 93ig 1B;. &ceasta actiune va po'itiona o*iectul in o*0ect *ench+ #e un#e i se vor putea apela !eto#ele prin !eniul popup sau #in co#e pa#.

3ig 1B- 2o'itionarea o*iectului peste o*0ect *ench $"4 Inspectarea o(iectelor <e8u-atC Pentru a inspe!ta o"ie!te in !ode pad dati du"lu !li!$ pe -i!a pi!togra-a aca #oriti sa inspectati un o*iect care a fost returnat in ur!a unei expresii #in co#e pa#+ puteti face asta fara sa1l plasati in o*0ect *ench- puteti #a #u*lu click pe pictogra!a o*iectului pentru a #eschi#e fereastra #e inspectie. $"5 <xecutia comen&ilor <e8u-atC Co-en8ile tastate in !ode pad sunt e*e!utate. 2uteti folosi co#e pa# pentru a executa co!en'i 9a#ica instructiuni Java care nu returnea'a o valoare;. Incercati aceste co!en'i03stem.out.println 45ur6ensalat4!; 03stem.out.println ne& java.util.2an.om !.next*nt /0!!; ,o!en'ile sunt evaluate corect fie ca au sau nu punct si virgula la sfarsit.

Copyright M. Kolling

Pag 23 din 38

$"$ Comen&i multilinie si secvente de comen&i <e8u-atC #olositi Shift D )nter la s5arsitul unei linii pentru a introdu!e !o-en8i pe -ai -ulte linii. 2uteti intro#uce secvente #e co!en'i+ sau co!en'i scrise pe !ai !ulte linii folosin# 9hi5t E 1nter la sfarsitul unei linii. 3olosin# 9hi5t E 1nter veti po'itiona cursorul la inceputul unei linii+ #ar nu va executa 9inca; co!an#a. Aa sfarsitul ulti!ei linii+ apasati 1nter pentru a evalua toate liniile i!preuna. Incercati+ #e exe!plu+ o *ucla 5or7or int i80; i95; i++! : 03stem.out.println 4number- 4 + i!; ; $". 5ucrul cu varia(ilele <e8u-atC Iaria"ilele lo!ale pot 5i 5olosite intr:o singura !o-anda -ultilinie. Hu-ele o"ie!telor din o"2e!t "en!h e 5olosit drept !a-puri de instanta. 8aria*ilele @ ca!puri #e instanta sau varia*ile locale @ pot fi folosite in co#e pa# intr1o !aniera restransa. 2uteti #eclara varia*ile locale in co#e pa#+ #ar nu sunt utile #ecat in co!en'i !ultilinie+ #eoarece varia*ilele se pier# intre linii succesive. e exe!plu+ puteti intro#uce acest *loc ca o co!an#a !ultilinie si el va functiona asa cu! va asteptatiint sum; sum 8 0; 7or int i80; i9/00; i++! : sum +8 i; ; 03stem.out.println 4<he sum is- 4 + sum!; aca intro#uceti acelasi co# ca si linii in#ivi#uale+ nu va pro#uce un re'ultat+ #eoarece varia*ila su- nu este retinuta #upa ce ati intro#us pri!a linie. 2uteti consi#era ce tastati pe o linie ca fiin# corpul unei !eto#e. "ot co#ul ce poate fi scris in corpul unei !eto#e+ poate fi scris si in co#e pa#. "otusi+ fiecare linie noua 9separata #e 1nter; for!ea'a o !eto#a noua+ asa ca nu puteti face referiri la o varia*ila #eclarata intr1o linie anterioara. 2uteti consi#era o*iectele #in o*0ect *ench ca si ca!puri #e instanta. 5u puteti #efini noi ca!puri #e instanta #in interiorul corpului unei !eto#e 9sau #in co#e pa#;+ #ar puteti apela o*iectele si ca!purile acestora. 2uteti creea o instanta noua creean# un o*iect in co#e pa# si tragan#u1l in o*0ect *ench.
Copyright M. Kolling Pag 24 din 38

$" Istoricul liniei de comanda <e8u-atC #olositi sageata1sus si sageata10os pentru a !i!la prin instori!ul liniei de !o-anda. ,o#e pa# retine co!en'ile intro#use. 3olositi sageata sus si 2os pentru a rescrie rapi# o linie anterioara+ ce poate fi !o#ificata inainte #e a fi relansata in executie.

Copyright M. Kolling

Pag 2( din 38

. De(u))in) &ceasta sectiune intro#uce cele !ai i!portante aspecte ale #e*ugging1ului in BlueJ. In #iscutiile noastre cu profesorii care pre#au progra!area a! constatat ca este #e #orit sa se pre#ea un instru!ent #e #e*ugging in pri!ul an+ #ar #e !ulte ori nu !ai este ti!p pentru asta. Stu#entii se chinuie cu e#itorul+ co!pilatorul si cu executia @ nu !ai au ti!p si pentru un instru!ent co!plicat. e aceea a! hotarat sa face! #e*uger1ul cat !ai si!plu cu putinta. "elul e sa ai un #e*ugger pe care il poti explica in 1B !in+ si care sa poata fi folosit #e stu#enti #e acu! inainte fara a0utor supli!entar. Sa ve#e! #aca a! reusit. In pri!ul ran#+ a! re#us functionalitatea #e*uger1ilor tra#itionali la trei ele!ente

setarea #e *reakpoint1uri executia pas cu pas

inspectarea varia*ilelor In schi!*+ fiecare #in acest ele!ent este foarte si!plu. &cu! vo! verifica fiecare ele!ent. 2entru a incepe+ #eschi#eti proiectul de"ugde-o+ care este inclus in #irectorul e*a-ples #in #istri*utie. &cest proiect inclu#e cateva clase !enite sa #e!onstre'e functionalitatea #e*uger1ului @ altfel nu fac ni!ic util. ."1 >etarea de (rea1point,uri <e8u-atC Pentru a seta un "rea$point dati !li!$ in 8ona de "rea$point din stanga te*tului din editor. Setarea unui *reakpoint va per!ite sa opriti executia intr1un anu!it punct #in co#. ,an# se intrerupe executia+ puteti investiga starea o*iectelor #vs. e regula va a0uta sa intelegeti ce se inta!pla in co#ul #vs. In e#itor+ in stanga textului este 'ona pentru *reakpoint1uri 93ig 1G;. 2uteti sta*ili un *reakpoint #an# un click acolo. Un si!*ol !ic #e stop va aparea sa !arche'e acest lucru. &cu! #eschi#eti clasa De-o+ gasiti !eto#a loop si puneti un *reakpoint un#eva in *ucla 5or. Si!*olul #e stop ar tre*ui sa apara in e#itorul #vs.

Copyright M. Kolling

Pag 2. din 38

!i) 1$= %n (rea1point ,an# se atinge linia care are *reakpoint1ul atasat+ exeutia va fi intrerupta. Sa incerca! acest lucru. ,reati un o*iect #in clasa De-o si apelati1i !eto#a loop=> cu un para!etru #e+ sa 'ice! 10. I!e#iat ce se atinge *reakpoint1ul+ se va #eschi#e e#itorul in#ican# linia curenta #e co# si se va #eschi#e si fereastra #e*ugger1ului. 8eti ve#ea ceva ca in fig 1%.

!i) 1.= !ereastra de(u))er,ului Ainia su*liniata #in e#itor in#ica linia ce se va executa in continuare. 9)xecutia s1a oprit inainte ca aceasta linie sa fie executata;.

Copyright M. Kolling

Pag 2/ din 38

."2 Parcur)erea codului pas cu pas <e8u-atC Pentru a par!urge !odul pas !u pas 5olositi "utoanele Step sau Step Into din de"ugger. &cu! ca s1a oprit executia 9ceea ce ne convinge ca !eto#a se executa si se poate a0unge la acest punct #in co#;+ pute! executa pas cu pas sa ve#e! ce se inta!pla. 2entru a face asta apasati in !o# repetat pe *utonul 9tep #in fereastra #e*ugger1ului. &r tre*ui sa ve#eti ca se !o#ifica linia sursa #in e#itor 9linia su*liniata se !o#ifica in functie #e linia ce se va executa;. e fiecare #ata can# apasati 9tep+ o singura linie #e co# se va executa si executia se va opri. =*servati si ca varia*ilele #in #e*ugger se !o#ifica 9#e exe!plu valoarea pentru su-;. &sa ca puteti executa pas cu pas si veti o*serva ce se inta!pla. upa ce va plictisiti #e asta+ puteti apasa pe *reakpoint #in nou pentru a1l sterge+ si apoi apasati *utonul Continue #in #e*ugger pentru a continua executia nor!al. Sa incerca! acelasi lucru cu alta !eto#a. Sta*iliti un *reakpoint in clasa De-o+ in !eto#a !ar3est=>+ la liniapla=es 8 m3>ar.seats !; &pelati !eto#a. ,an# se atinge *reakpoint1ul+ sunteti pe cale sa apelati o linie ce contine apleul catre !eto#a seats=> #in clasa Car. aca apasati 9tep va trece peste toata linia. Sa incerca! sa apasa! 9tep %nto #e #ata asta. aca apasati acest *uton pentru o !eto#a+ veti intra in !eto#a si veti executa linie cu linie !eto#a respectiva 9nu intr1un singur pas;. In acest ca' sunteti #us in !eto#a seats=> #in clasa Car. 2uteti parcurge intreaga !eto#a pana can# a0ungeti la sfarsitu ei si va intoarceti la !eto#a apelanta. =*servati ca #e*ugger1ul afisea'a lucruri !o#ificate. 9tep si 9tep %nto se co!porta i#entic #aca linia curenta nu contine un apel #e !eto#a. ."* Inspectarea varia(ilelor <e8u-atC %nspe!tarea 7aria"ilelor e usoaraC ele sunt a5isata auto-at in de"ugger. ,an# faceti #e*ugging+ este i!portant sa puteti inspecta starea o*iectelor 9varia*ile locale sau #e instanta;. Sa faceti acest lucru e trivial @ #e0a ati va'ut !are parte. 5u aveti nevoie #e co!en'i speciale pentru a inspecta varia*ileleL varia*ilele statice+ #e instanta ale o*iectului curent si cele locale ale !eto#ei curente sunt afisate auto!atic. 2uteti selecta !eto#e #in secventa #e apeluri pentru a ve#ea varia*ilele altor o*iecte si !eto#e active in !o# curent. Sta*iliti #e exe!plu un *reakpoint in !eto#a !ar3est=> #in nou. In partea stanga a #e*ugger1ului puteti ve#ea secventa #e !eto#e. Mo!entan arata>ar.seats +emo.=ar<est &cest lucru in#ica faptul ca Car.seats a fost apelat #e De-o.!ar3est. 2uteti selecta De-o.!ar3est #in aceasta lista pentru a inspecta sursa si varia*ilele curente ale acestei
Copyright M. Kolling Pag 28 din 38

!eto#e. aca treceti #e linia cu ne' Car=...>+ puteti o*serva ca valoarea varia*ilei -yCar e in#icata ca Jo"2e!t re5eren!eK. "oate varia*ilele #e tip o*iect 9cu exceptia string1urilor; sunt afisate in acest !o#. 2uteti inspecta aceasta varia*ila+ #an# #u*lu click pe ea. &cest lucru va #eschi#e o fereastra #e inspectare a o*iectelor i#entica cu cele #escrise anterior 9sectiunea >.1;. 5u e nici o #iferenta in a inspecta o*iecte aici sau a le inspecta in o*0ect *ench. ."4 7prirea pro)ramului <e8u-atC Co-en8ile Palt si "er!inate pot 5i 5olosite pentru a opri e*e!utia progra-ului te-porar sau per-anent. ,ateo#ata un progra! rulea'a #e !ult ti!p si va intre*ati #aca este ok. 2oate ca a intrat intr1o *ucla infinita sau poate ca e nor!al sa #ure'e atat. 2ai pute! verifica. &pelati !eto#a longloop=> #in clasa De-o. )xecutia co#ului va #ura ceva vre!e. &cu! vre! sa afla! ce se inta!pla. &fisati #e*ugger1ul #aca cu!va nu e afisat. &cu! apasati *utonul Balt. )xecutia se opreste ca si cu! ar fi a0uns la un *reakpoint. 2uteti parcurge cativa pasi+ sa o*servati varia*ilele si sa va convingeti ca totul e in or#ine si !eto#a are nevoie #e ceva ti!p sa ter!ine. 2uteti apasa Continue si Balt #e cateva ori pentru a ve#ea cat #e repe#e nu!ara. aca nu vreti sa continuati 9#e exe!plu+ ati #escoperit ca sunteti intr1o *ucla infinita; puteti apasa 3er-inate pentru a opri intreaga executie. 3er-inate nu tre*uie folosit prea #es @ pot ra!ane o*iecte care au fost *ine gan#ite intr1o stare inconsistenta+ asa ca e reco!an#a*il sa nu folositi aceasta optiune #ecat ca un !ecanis! #e urgenta.

Copyright M. Kolling

Pag 20 din 38

Crearea de aplicatii de sine statatoare <e8u-atC Pentru a !reea apli!atii de sine statatoare 5olositi 2ro0ect @ ,reate Jar 3ile... BlueJ poate creea fisiere executa*ile 0ar. &ceste fisiere pot fi executate pe unele siste!e #oar prin #u*lu click 9#e exe!plu pe <in#o/s si Mac=S;+ sau prin apelarea co!en'ii 2a7a :2ar Jnu-e5isier.2arK 9in U5I? sau in =S;. 8o! incerca acest lucru cu proiectul hello. eschi#eti1l 9e in #irectorul e*a-ples;. &sigurati1va ca ati co!pilat proiectul. Selectati Create Jar #ile... #in !eniul Pro2e!t. 8a aparea o fereastra #e #ialog care va cere sa specificati clasa principala 93ig 1J;. &ceasta clasa tre*uie sa ai*a o !eto#a !ain vali#a 9cu se!natura pu"li! stati! 7oid -ain=9tringLM args>;.

!i) 1 = !ereastra ?Create Jar !ile@ In exe!plul nostru+ alegerea unei clase principale e usor @ ave! o singura clasa. &legeti Bello #in !eniul pop1up. aca aveti alte proiecte+ alegeti !eto#a !ain pe care #oriti sa o executati. In !o# nor!al nu veti inclu#e sursele in proiectele executa*ile. ar puteti+ #aca vreti+ sa va #istri*uiti si sursele. 92uteti folosi proiectul 0ar pentru a tri!ite tot proiectul altcuiva prin e1!ail+ intr1un singur fisier;. aca ati configurat BlueJ sa foloseasca *i*lioteciile user1ului 9ori prin setarea Pre5eren!es+)i"raries sau folosin# #irectorul li"+userli"; veti ve#ea o 'ona nu!ita %n!lude user li"raries in !i0locul ferestrei. 9 aca nu folositi alte *i*lioteci+ aceasta 'ona va lipsi;. "re*uie sa *ifati toate *i*lioteciile pe care le foloseste proiectul #vs. &pasati Continue. In continuare veti ve#ea o fereastra #e #ialog in care puteti sta*ili nu!ele fisierului 0ar pe care #oriti sa1l creeati. "astati hello si apoi Create. aca nu aveti alte *i*lioteci ce tre*uiesc incluse+ va fi creeat un fisier nu!it hello.2ar. aca aveti *i*lioteci #e inclus+ va fi creeat un #irector hello si in interiorul lui un fisier hello.2ar. irectorul va contine si *i*lioteciile necesare. 3isierul 0ar se asteapta sa gaseasca *i*lioteciile
Copyright M. Kolling Pag 34 din 38

in aceeasi structura+ asa ca aveti gri0a sa le #istri*uiti i!preuna. 2uteti lansa in executie fisierul 0ar #oar #aca aplicatia foloseste o interfata HUI. )xe!plul nostru foloseste o interfata text asa ca va tre*ui pornit #in linia #e co!an#a. Sa incerca! sa rula! fisierul 0ar acu!. eschi#eti un ter!inal si navigati pana in #irectorul un#e e salvat fisierul 0ar 9ar tre*ui sa ve#eti un fisier hello.2ar;. 2resupunan# ca Java e instalat corect in siste!ul #vs+ ar tre*ui sa puteti tasta java -jar hello.jar pentru a executa fisierul.

Copyright M. Kolling

Pag 31 din 38

# Crearea applet,urilor #"1 -ularea unui applet <e8u-atC Pentru a rula un applet sele!tati 7un applet din -eniul !onte*t al applet: ului. BlueJ per!ite crearea si rularea appleturilor si a aplicatiilor. &! inclus un applet in #irectorul e*a-ples al #istri*utiei. Mai intai #ori! sa incerca! sa executa! un applet. eschi#eti proiectul appletde-o #in exe!ple. 8eti o*serva ca acest proiect are o singura clasa nu!ita CaseCon7erter. 2uteti o*serva ca pictogra!a clasei e !arcata cu JJappletKK. upa co!pilare selectati <un applet #in !eniul context al clasei. 8a aparea o fereastra #e #ialog ce va per!ite sa faceti niste selectii 93ig 1M;.

!i) 1#= !ereastra de dialo) ?-un Applet@ &ici ve#eti ca aveti #e ales intre rularea applet1ului intr1un *ro/ser sau intr1un appletvie/er 9sau #oar sa generati co#ul ht!l fara sa rulati applet1ul;. Aasati setarile i!plicite si apasati =k. In cateva secun#e tre*uie sa porneasca un applet vie/er cu applet1ul incarcat. &ppletvie/er1ul e instalat o#ata cu J2S) S K+ asa ca e garantat sa ai*a aceeasi versiune cu co!pilatorul #vs Java. &cest lucru generea'a #e o*iecei !ai putine pro*le!e #ecat *ro/serele. Bro/ser1ul #vs /e* poate rula o versiune #iferita #e 0ava+ si acest lucru poate #uce la pro*le!e. "otusi+ ar tre*ui sa !earga *ine cu *ro/serele curente. 2e Microsoft <in#o/s si in Mac=s+ BlueJ foloseste *ro/ser1ul i!plicit. 2e siste!ele U5I? *ro/ser1ul e #efinit in setari.

Copyright M. Kolling

Pag 32 din 38

#"2 Crearea unui applet <e8u-atC Pentru a !reea un applet sele!tati "utonul 5e/ ,lass si apoi sele!tati &pplet !a tip de !lasa upa ce a! va'ut cu! rulea'a un applet+ vre! sa creea! unul. ,reati o clasa noua #e tipul Applet 9puteti sta*ili tipul in #ialogul He' Class>. ,o!pilati si rulati applet1ul. 5u a fost asa #e greu+ nu1i asaQ &pplet1urile 9ca si alte clase; sunt generate cu un co# schelet vali#. 2entru applet1uri+ acest co# va afisa un applet si!plu cu #oua linii #e text. 2uteti #eschi#e e#itorul si puteti insera propriul co#. 8eti ve#ea ca toate apelurile u'uale pentru applet1uri sunt aici+ fiecare cu cate un co!entariu care ii explica scopul. ,o#ul care se executa e in !eto#a paint=>. #"* Testarea applet,ului In anu!ite situatii e util sa se cree'e un o*iect Applet in o*0ect *ench 9ca si o*iectele nor!ale;. 2uteti face acest lucru @ constructorul e afisat in !eniul context al clasei respective. in o*0ect *ench nu puteti rula intreg appletul+ #ar puteti rula unele !eto#e. &cest lucru e util #aca vreti sa testati !eto#e scrise in i!ple!entarea applet1ului #vs. aca sta*iliti *reakpoint1uri in applet1ul #vs+ ele nu vor avea efect can# rulati applet1ul intr1un *ro/ser sau appletvie/er. &cest lucru se inta!pla #eoarece si /e* *ro/ser1ul si appletvie/er1ul folosesc !asini 0ava #iferite pentru a rula applet1ul si acestea nu inteleg *reakpoint1urile sta*ilite #e BlueJ. aca #oriti sa folositi *reakpoint1uri si executie pas cu pas intr1un applet+ puteti folosi clasa Applet&indo'+ scrisa #e Michael "rigo*off. ,lasa va pune la #ispo'itie un ca#ru in care sa rulati applet1ul #irect #in BlueJ+ astfel incat sa poata fi aplicate !eto#ele clasice #e #e*ugging. 2uteti gasi aceasta clasa si un #e!o in sectiunea <esurse #e pe site1ul BlueJ.

Copyright M. Kolling

Pag 33 din 38

1+ Alte operatii 1+"1 Desc0iderea pac0etelor non,BlueJ in BlueJ <e8u-atC Pa!hetele non:BlueJ pot 5i des!hise !u !o-anda 2ro0ect @ =pen non BlueJ... BlueJ va per!ite sa #eschi#eti pachete existente creeate in afara !e#iului BlueJ. 2entru a face asta+ selectati Pro2e!t D ;pen non BlueJ... #in !eniu. Selectati #irectorul care contine fisierele sursa Java si apoi apasati *utonul ;pen in BlueJ. Siste!ul va cere confir!area ca #oriti sa #eschi#a acel #irector. 1+"2 Adau)area claselor existente in proiect <e8u-atC Clase pot 5i in!ar!ate din e*teriorul unui proie!t 5olosind !o-anda &## ,lass fro! 3ile... &#eseori #oriti sa folositi o clasa intr1un proiect BlueJ pe care ati o*tinut1o #in alta sursa. e exe!plu+ un profesor #a o clasa Java stu#entilor sa o foloseasca intr1un proiect. 2uteti intro#uce usor o clasa existenta intr1un proiect selectan# 1dit D Add Class 5ro- #ile... &stfel puteti selecta si i!porta o sursa 0ava 9cu extensia .2a7a;. ,an# se i!porta o clasa externa+ i se face o copie si se pastrea'a in #irectorul curent. &re acelasi efect ca si can# ati fi creat clasa si ati fi scris tot co#ul ei sursa. &lternativa e sa a#augati co#ul sursa al clasei #in afara BlueJ. ata viitoare can# #eschi#eti proiectul+ noua clasa va aparea in #iagra!a. 1+"* Apelul main89 si a altor metode statice <e8u-atC Metodele stati!e pot 5i apelate din -eniul !onte*t al !lasei. eschi#eti proiectul hello #in #irectorul e*a-ples. Singura clasa #in proiect 9clasa Bello; are o !eto#a statica !ain. aca #ati click #reapta pe clasa veti o*serva ca !eniul nu contine #oar constructorul #ar si !eto#a statica !ain9;. 2uteti apela acu! !eto#a !ain #in acest !eniu 9fara sa creeati !ai intai un o*iect;. "oate !eto#ele statice pot fi apelate astfel. Meto#a !ain stan#ar# asteapta un vector #e ele!ente 9tring ca argu!ent. 2uteti tri!ite ca para!etru un vector #e ele!ente 9tring folosin# sintaxa Java:one$ t&o$ three; Incercati acest lucruN
Copyright M. Kolling Pag 34 din 38

NOTA: In Java nu e permisa trimiterea ca parametru a unui vector pentru metode. &u pot fi folositi decat ca initializatori. In %lueJ, pentru a putea apela metodele statice in mod interactiv, permitem pasarea ca ar!umente a vectorilor constanti. 1+"4 Aenerarea documentatiei <e8u-atC Pentru a genera do!u-entatie pentru un proie!t ocu!entation din -eniul "ools. sele!tati 2ro0ect

2uteti genera #ocu!entatie in for!atul stan#ar# 2a7ado! #in interiorul BlueJ. 2entru a face asta selectati 3ools D Pro2e!t Do!u-entation #in !eniu. &ceasta functie va genera #ocu!entatia pentru toate clasele #intr1un proiect+ *a'an#u1se pe co#ul lor sursa si va #eschi#e un *ro/ser cu re'ultatul final. 2uteti genera si vi'uali'a #ocu!entatia pentru o singura clasa #irect in e#itorul BlueJ. 2entru a face acest lucru+ #eschi#eti e#itorul si folositi !eniul lui. Schi!*ati selectia #in %-ple-entation in %nter5a!e. &cest lucru va arata #ocu!entatia in for!at 2a7ado! 9interfata clasei; in e#itor. 1+"5 5ucrul cu (i(lioteci <e8u-atC Bi"liote!iile standard Ja7a =Ja7a AP%> pot 5i 7i8uali8ate sele!tand Pelp @ Java ,lass Ai*raries In !o# u'ual+ can# scrieti aplicatii Java+ aveti nevoie #e infor!atii #in *i*lioteca stan#ar#. 2uteti #eschi#e un *ro/ser /e* cu &2I1ul Java selectan# Belp D Ja7a Class )i"raries #in !eniu 9#aca sunteti online;. ocu!entatia J K poate fi instalata si folosita si offline. etaliile sunt explicate in sectiunea Pelp #e pe site1ul BlueJ. 1+"$ Crearea o(iectelor din clasele de (i(lioteca <e8u-atC Pentru a !reea o"ie!te din !lasele de "i"liote!a 5olositi "ools @ Use Ai*rary ,lass BlueJ ofera #e ase!enea facilitatea #e a creea o*iecte #in clase care nu fac parte #in proiect+ #ar tin #e o *i*lioteca. e exe!plu+ puteti creea o*iecte #e tip 9tring sau Array)ist. &cest lucru e util pentru o experi!entare rapi#a cu aceste o*iecte #e *i*lioteca. 2uteti creea un o*iect #in clasele #e *i*lioteca selectan# 3ools D ,se )i"rary Class. 8a aparea o fereastra #e #ialog care va va cere nu!ele co!plet al clasei+ #e exe!plu 2a7a.lang.9tring. 9&veti gri0a pentru ca tre*uie sa tastati nu!ele co!plet al clasei+ a#ica
Copyright M. Kolling Pag 3( din 38

nu!ele clasei plus al pachetelor; ,asuta #e text are un !eniu asociat al claselor folosite anterior. upa ce ati tastat nu!ele clasei si ati #at 1nter+ va fi afisata lista constructorilor #isponi*ili si a !eto#elor statice ale clasei. =rice constructor sau !eto#a statica a clasei poate fi apelata selectan#1o #in lista. Invocarea se petrece la fel cu orice apel #e constructor.

Copyright M. Kolling

Pag 3. din 38

11 -e&umat Inceputul 1. Pentru a des!hide un proie!t sele!tati =pen din -eniul 2ro0ect. 2. Pentru a !reea un o"ie!t sele!tati un !onstru!tor din -eniul pop:up al !lasei. 3. Pentru a e*e!uta o -etoda sele!tati:o din -eniul pop:up al o"ie!tului. 4. Pentru a edita sursa unei !lase dati du"lu !li!$ pe pi!togra-a !lasei. (. Pentru a !o-pila o !lasa apasati "utonul ,o!pile din editor. Pentru a !o-pila un proie!t apasati ,o!pile din 5ereastra proie!tului. .. Pentru a o"tine a2utor in !a8ul unei erori de !o-pilare apasati pe se-nul intre"arii de langa -esa2ul de eroare. 3acan# !ai !ulte... /. %nspe!tia per-ite e5e!tuarea unui de"ugging si-plu a5isand starea interna a o"ie!telor. 8. ,n o"ie!t poate 5i tri-is !a para-etru al unei -etode dand !li!$ pe pi!togra-a o"ie!tului ,rearea unui proiect nou 0. Pentru a !reea un proie!t sele!tati 5e/... din -eniul 2ro0ect. 14. Pentru a !reea o !lasa apasati "utonul 5e/ ,lass si spe!i5i!ati un nu-e de !lasa. 11. Pentru a !reea o sageata apasati si-"olul sageata si trasati sageata in diagra-a sau doar s!rieti !odul sursa in editor. 12. Pentru a eli-ina o !lasa sau o sageata alegeti optiunea 7e!ove din -eniul ei popup. Utili'an# 4co#e pa#4 13. Pentru a in!epe sa 5olositi !ode pad sele!tati Sho/ co#e pa# din -eniul 8ie/. 14. Pentru a e7alua e*presii Ja7a introdu!eti:le in !ode pad. 1(. Pentru a trans5era o"ie!te din !ode pad in o"2e!t "en!h trageti de pi!togra-a o"ie!tului. 1.. Pentru a inspe!ta o"ie!te in !ode pad dati du"lu !li!$ pe -i!a pi!togra-a 1/. Co-en8ile tastate in !ode pad sunt e*e!utate. 18. #olositi Shift D )nter la s5arsitul unei linii pentru a introdu!e !o-en8i pe -ai
Copyright M. Kolling Pag 3/ din 38

-ulte linii. 10. Iaria"ilele lo!ale pot 5i 5olosite intr:o singura !o-anda -ultilinie. Hu-ele o"ie!telor din o"2e!t "en!h e 5olosit drept !a-puri de instanta. 24. #olositi sageata1sus si sageata10os pentru a !i!la prin instori!ul liniei de !o-anda. e*ugging 21. Pentru a seta un "rea$point dati !li!$ in 8ona de "rea$point din stanga te*tului din editor. 22. Pentru a par!urge !odul pas !u pas 5olositi "utoanele Step sau Step Into din de"ugger. 23. %nspe!tarea 7aria"ilelor e usoaraC ele sunt a5isata auto-at in de"ugger. 24. Co-en8ile Palt si "er!inate pot 5i 5olosite pentru a opri e*e!utia progra-ului te-porar sau per-anent. ,rearea #e aplicatii #e sine statatoare 2(. Pentru a !reea apli!atii de sine statatoare 5olositi 2ro0ect @ ,reate Jar 3ile... ,rearea applet1urilor 2.. Pentru a rula un applet sele!tati 7un applet din -eniul !onte*t al applet:ului. 2/. Pentru a !reea un applet sele!tati "utonul 5e/ ,lass si apoi sele!tati &pplet !a tip de !lasa &lte operatii 28. Pa!hetele non:BlueJ pot 5i des!hise !u !o-anda 2ro0ect @ =pen non BlueJ... 20. Clase pot 5i in!ar!ate din e*teriorul unui proie!t 5olosind !o-anda &## ,lass fro! 3ile... 34. Metodele stati!e pot 5i apelate din -eniul !onte*t al !lasei. 31. Pentru a genera do!u-entatie pentru un proie!t sele!tati 2ro0ect ocu!entation din -eniul "ools. 32. Bi"liote!iile standard Ja7a =Ja7a AP%> pot 5i 7i8uali8ate sele!tand Pelp @ Java ,lass Ai*raries 33. Pentru a !reea o"ie!te din !lasele de "i"liote!a 5olositi "ools @ Use Ai*rary ,lass

Copyright M. Kolling

Pag 38 din 38

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