Diferența dintre clasă și obiect
Diferența dintre clasă și obiect

Probabil că ai auzit de conceptul programării orientate pe obiect (Object Oriented Programming), dar crezi că o clasă este una și același lucru cu obiectul. Oare sunt totuna? Nu…

Ce este o clasă? Am scris pe scurt un răspuns vag în articolul O clasă în Java. O clasă este un șablon cu ajutorul căruia se creează obiectele.

Imaginează-ți clasa ca fiind planul arhitectural al unei case, iar obiectul ca fiind construcția casei în sine. Poți lua planul și să construiești alte case în altă parte, nu-i așa? Mai greu este să muți casa (obiectul).

Să fie mai multe diferențe dintre clasă și obiect? Cu siguranță!

O clasă este un fel de tip de dată. Dacă citești articolul Tipuri de date primitive în Java, ai să vezi cum se pot stoca în memorie anumite caractere.

Ei bine, o clasă este un tip de dată care stochează adresa obiectului în memorie (memoria Heap).

În Java sunt două tipuri de date: primitive și de referință.

Variabilele de referință au de-a face cu obiectele… O referință este numele unei variabile care stochează adresa obiectului în memorie.

Să luăm un exemplu:

1| class Acasa {
2| ...
3| }
4| Acasa casaMea = new Acasa();

În exemplul anterior, am creat clasa Acasa, iar apoi am creat obiectul casaMea. Cum? Am folosit numele clasei ca tip de dată (așa cum se declară orice tip de variabilă) și am inițializat obiectul, adică l-am instanțiat.

Instanțierea reprezintă declararea clasei (sau a constructorului…), care creează o instanță a obiectului acelui tip de clasă. O instanță este totuna cu un obiect? Aici am vrut să ajung…

Între instanță și obiect nu se pune semnul egal.

casaMea este o instanță a clasei Acasa, dar în același timp, casaMea este un obiect al tipului Acasa.

În momentul în care instanțiezi o clasă folosind cuvântul new, acea instanță devine obiect. Practic, e ca și cum prin instanțiere se face referire la nașterea obiectului. Complicat? Cred și eu că da…

Numai dacă vrei… poți să presupui că prin declararea unei variabile se produce instanțierea, iar prin inițializarea unei variabile se produce obiectul.

Dacă o clasă este o definiție, atunci un obiect este punerea în practică a definiției, iar o instanță este o entitate unică a clasei, adică acel obiect care a luat naștere după definiția clasei. Pot fi mai multe idei puse în practică de la definiția clasei, chiar mai multe obiecte, dar fiecare obiect este unic în felul său datorită instanței. Face sens acum?

Poți să-ți imaginezi că obiectul este o copie a clasei, iar instanța este variabila care memorează adresa obiectului (ca referință).

Procesul prin care se dă naștere la obiect se numește instanțiere.

Obiectele se află în memorie, iar instanțele fac referință la obiecte…

Știi acum care este diferența dintre clasă și obiect? Poți reciti articolul… Ai aflat și că există o diferență între obiect și instanță.

Învață să fii profesionist!

By projava

#JAVA

Abonează-te
Primește notificări pentru
guest
0 Comentarii
Păreri...
Vezi toate comentariile