CATEGORII DOCUMENTE |
Java - limbaj orientat obiect
Java este un limbaj orientat obiect. El a fost prezentat astfel de catre creatorii lui si nu poate exista nici un dubiu in aceasta privinta. Cu diferente, adaugiri dar, mostenind principalele caracteristici ale unui astfel de limbaj, Java este o dovada a actualitatii POO.
1 Definirea unei clase
O noua clasa poate fi definita ajutandu-ne de cuvantul rezervat "class".
class NumeClasa
Membrii clasei pot fi date membre sau/si functii membre. Datele membre se declara ca orice variabila normala :
int dataMembra;
Functiile membre sunt definite astfel :
tip nume_functie (tip argumente)
Exista cateva caracteristici cu privire la clase Java pe care le voi aminti aici. In primul rand, spre deosebire de alte limbaje in Java acesta este singurul mod de a defini noi tipuri (class Nume Class). Apoi, functiile membre nu pot fi definite decat in interiorul clasei de care tin si nu in exterior asa cum este posibil in C/C++. Nu in ultimul rand, trebuie amintit faptul ca numele fisierului ce contine o anumita clasaa Java trebuie sa fie identic cu numele clasei.
In general, o clasa este definita pentru a putea lucra cu obiectele ce fac parte din aceea clasa. Un obiect poate fi declarat astfel :
Copii copilulMeu = new Copii( );
Pentru a provoca o operatie asupra unui obiect este de ajuns sa declaram obiectul ca apatinand clasei respective si apoi sa-i atasam metoda respectiva :
int varsta = copilulMeu.Varsta( );
2 Controlul accesului
Java stabileste accesul la clase si membrii acesteia cu ajutorul a trei cuvinte rezervate : public, private si protected.
Daca un membru nu este marcat de nici unul din acesti specificatori este considerat implicit friendly. Domeniul friendly in Java este cel al pachetelor, adica orice data declarata friendly este accesibila direct in cadrul aceluiasi pachet (acelasi fisier sursa).
O clasa public sau un membru public este accesibil tuturor claselor din toate pachetele (fisierele). Componentele private sunt accesibile numai membrelor clasei in care au fost definite. Componentele protected sunt accesibile in orice clasa din pachetul carei apartine clasa in care este declarata. In acelasi timp, componenta este accesibila in toate subclasele calsei date, chiar daca ele apatin altor pachete.
3 Fara pointeri
Un pointer este o variabila ce contine adresa altei variabile. O caracteristica importanta a limbajului este lipsa pointerilor. Java nu are pointeri expliciti, dar ofera in schimb referinte. Sa vedem cum putem inlocui pointeri cu facilitatile oferite de Java.
Consideram clasa Copii si sa cream un obiect al acestei clase.
Copii copilului_meu = new Copii ( );
Sa mai definim un alt obiect astfel:
Copii copilul_sotiei_mele = copilul_meu;
In acest moment copilul_sotiei_mele si copilul_meu refera acelasi obiect din clasa Copii. Este ca si cum cei doi parinti isi numesc copilul in moduri diferite. Daca programul schimba atributele unuia din obiecte va fi schimbat si atributul celuilalt.
copilul_meu.varsta = 4;
copilul_sotiei_mele.varsta = 8;
// acum avem copilul_meu.varsta egal cu 8
Un exemplu de utilizare a referintelor este clasa de mai jos. Aceasta reprezinta implementarea in Java a unei liste simplu inlantuita.
public class Lista
else
}
}
Sa urmarim constructia clasei. Doua date membre speciale, m_cap si m_coada, refera prima, respectiva ultima componenta din lista. Cum aceasta clasa defineste o singura lista vom considera cele doua date ca fiind statice.
La randul sau, fiecare nod are doua referinte : m_obiect, m_next. Primul refera obiectul clasei Copii iar cel de al doilea urmatorul element al listei.
Am vazut ca putem crea noi obiecte fara a ne interesa sa scapam de ele mai t=rziu, chiar daca devin inutile. Acest lucru este realizat automat de Java cu ajutorul unui sistem de garbage collection. Astfel un obiect Java poate fi sters in urmatoarele cazuri :
1) De cate ori este nevoie. Cand memoria heap este aproape plina, programul se opreste si porneste garbage collection pentru a crea cat mai mult spatiu posibil.
2) De cate ori acest lucru este cerut. Programatorul poate forta garbage collection cu System.gc. Un astfel de exemplu este dat in clasa Nod prezentata in listing-ul WebOnWeb din Anexa 2
3) De cate ori se poate. Java cauta in background, in mod continuu, obiectele ce ar putea fi eliminate. Aceasta operatie este diferita de prima prin faptul ca nu implica slabirea performantelor sistemului.
Prezenta in Java a sistemului garbage collection este o explicatie a lipsei desctructorilor din interiorul unei clase.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1219
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved