Obiecte si clase (Part. II)

0

Pentru acest tutorial trebuie sa ai unele cunostinte Java de baza precum sintaxa. Obiectelesunt elementele cheie pentru a construi aplicatii Java complexe si eficiente.

Cand un developer dezvolta un sistem complex, incepe designul procesului divizand cerintele variate ale proiectului in aplicatii ale componentelor. In ultima faza, acestea sunt reprezentate de obiecte din aplicatie si sunt implementate in cod prin declaratiile claselor. Ar putea fi dificil sa observi avantajele acestei tehnici in timp ce inveti (si lucrezi la proiecte mici), dar daca adopti tehnicile corecte in acest moment, iti vei dezvolta abilitatile cerute pentru dezvoltarea profesionala Java.

Crearea obiectelor

In IDE-ul Java, creeaza un nou proiect numit MyFirstObject, avand clasa principalaMyFirstObject (daca folosesti Netbeans myfirstobject. MyFirstObject avand myfirstobjectca numele pachetului).

In interiorul fisierului MyFirstObject.Class trebuie sa introduci urmatorul cod:

Utilizarea obiectelor iti ofera posibilitatea de a imparti responsabilitatea intre diferitele sectiuni ale ale unei aplicatii. De exemplu, poti implementa anumite cerinte ale programului tau cu ajutorul diferitelor metode, apelandu-le din partea principala a codului. Obiectele iti ofera o functionalitate asemanatoare, dar trebuie sa retii ca fiecare obiect are o clasa proprie, definita intr-un fisier .java separat.

Obiectele pe care este posibil sa le fi utilizat deja (precum String, Array, etc.) au de asemenea propriile declaratii de clase – acestea sunt predefinite de catre limbajul Java – si, chiar daca nu poti accesa codul, poti vedea proprietatile si metodele lor in Java API ( Application Programming Interface). Obiectele pe care le definesti chiar tu vor functiona in acelasi fel.

In proiectul tau creeaza o noua clasa numita MyHelper si scrie urmatorul cod:

Codul de deasupra este o simpla declaratie de clasa in care se specifica proprietatile pe care le va avea fiecare obiect din clasa MyHelper. In continuare vei crea o instanta a acestei clase in functia main, dar nu inainte de a analiza proprietatile ei.

Proprietatile clasei

Membrii sau proprietatile unei clase reprezinta informatii care sunt memorate in fiecare instanta a unei obiect. In concluzie, de fiecare data cand vei crea un obiect MyHelper,acesta va contine o proprietate helperNum. Daca o proprietate a unei clase a fost declarata ca private, aceasta inseamna ca valoarea ei nu poate fi schimbata decat din interiorul clasei respective.

Constructorul clasei

Poti observa ca acesta arata la fel ca orice alta metoda, cu exceptia faptului ca este specificat tipul de date returnat. Deoarece constructorul este apelat doar la crearea unui obiect al clasei folosind cuvantul cheie „new„, ceea ce returneaza este o instanta a clasei. Aceasta metoda initializeaza proprietatea clasei cu o valoare, ceea ce inseamna ca atribui o valoarea variabilei helperNum. Este recomandat ca dupa executia constructorului nici o proprietate sa ramana neinitializata, deoarece aceasta ar putea genera o serie de erori.

Metoda public

Declaratia contine o metoda public, „getNumber”, care poate fi apelata de oriunde, chiar si dintr-o alta clasa. Chiar daca exemplul ar putea parea banal, este normal sa ai metode care seteaza sau returneaza valori ale proprietatilor clasei.

Importanta acestor metode este legata de faptul ca unele proprietati ale clasei sunt private. Un principiu de baza al programarii orientate pe obiecte este crearea unei interfete bine definite- aceasta inseamna ca accesul la orice date din interiorul unei clase se va face prin una dintre intermediul unei metode. Daca proprietatile clasei erau publice, un cod extern ar fi putut schimba direct valoarea lor, ceea ce nu este recomandat deoarece codul extern nu ar acorda atentie detaliilor de implementare ale clasei respective. Daca restrictionezi accesul la aceste proprietati , intr-o metoda public poti face orice verificare pentru a te asigura ca datele primite ca parametri sau returnate sunt valide.

Utilizarea clasei create

Acum mergi inapoi in clasa principala si introdu urmatorul cod in metoda main:

Dupa ce compilezi si rulezi progrmul, ar trebui sa iti afiseze numarul 1 ca output. Din metoda main poti apela orice metoda public a obiectului MyHelper.

O clasa ar putea avea metode private care sunt folosite doar in interiorul ei. De exemplu, una dintre metodele public ar putea implica un proces complex si repetitiv pe care decizi sa il definesti intr-o metoda proprie, apelata din metoda public – in acest caz, metoda proprie, specifica, ar trebui declarata ca fiind private deoarece ea tine chiar de implementarea clasei, la care codul extern ar trebui sa nu aiba acces.

Principiile obiectelor

Daca nu stii inca foarte multe despre obiecte, te-ar putea ajuta sa le privesti ca fiind „cutii negre”. Unul dintre principiile care face Java potrivit pentru dezvoltarea proiectelor mari, este ca orice aplicatie dezvoltata in Java poate fi folosita ca fiind o parte dintr-o alta aplicatie.

Pentru ca o componenta dezvoltata separat sa poata fi utilizata intr-o alta aplicatie, ar trebui ca detaliile de implementare ale acesteia sa nu conteze. Atat timp cat componenta respectiva are o interfata binedefinita, ar trebui sa te poti folosi de resursele pe care le ofera fara a sti nimic despre ce se petrece in interior – asa cum poti folosi un String sau Array fara a intelege cum sunt implementate in cod. In acest caz, poti considera obiectele ca fiind „cutii negre”, intrucat codul extern ar trebui sa te lase sa te folosesti de ele fara a acorda atentie modului cum sunt construite.

Mai multe despre clase

Ca o observatie de final, ar trebui sa stii ca o clasa poate avea mai multi constructori in cazul in care fiecare dintre ei are parametri diferiti. Crearea unui obiect va determina apelarea unuia dintre constructori in functie de parametri pe care ii transmiti. In cazul in care nu definesti nici un constructor, Java va crea unul default. Pentru a demonstra acest lucru, adauga un al doilea constructor in clasa tale.

Acum adauga urmatorul cod in metoda main:

Daca executia aplicatia, vei vedea ca vor fi afisate valorile 1 si 2.

Leave A Reply