This shows you the differences between two versions of the page.
|
poo-is-ab:laboratoare:03 [2025/10/17 18:18] razvan.cristea0106 [Programarea Orientată pe Obiecte (POO)] |
poo-is-ab:laboratoare:03 [2025/12/07 13:14] (current) razvan.cristea0106 [Programarea Orientată pe Obiecte (POO)] |
||
|---|---|---|---|
| Line 191: | Line 191: | ||
| </code> | </code> | ||
| - | <note important>Un obiect nu este altceva decât un reprezentant al clasei, care respectă structura acesteia, adică deține toate proprietățile pe care clasa le pune la dispoziție. Pentru a înțelege puteți face analogia cu oamenii. Toți oamenii au plămâni, aceasta fiind o caracteristică comună speciei umane. Diferențele pot să apară la starea de sănătate a plămânilor, deoarece, în general, persoanele mai tinere au plămâni mai sănătoși comparativ cu cei ai persoanelor vârstnice. Starea de sănătate a plămânilor poate varia și în funcție de factori precum stilul de viață, expunerea la poluare sau fumat.</note> | + | <note important>Un **obiect** nu este altceva decât un **reprezentant** al clasei, care respectă structura acesteia, adică deține **toate proprietățile** pe care clasa le pune la dispoziție. Pentru a înțelege mai bine putem face analogia cu oamenii. Toți oamenii au **plămâni**, aceasta fiind o **caracteristică comună** speciei umane. Diferențele pot să apară la **starea de sănătate** a plămânilor, deoarece, în general, persoanele mai **tinere** au plămâni **mai sănătoși** comparativ cu cei ai persoanelor **vârstnice**. Starea de sănătate a plămânilor poate varia și în funcție de **factori** precum **stilul de viață**, **expunerea la poluare** sau **fumat**.</note> |
| Dacă vom dori să accesăm membrii clasei **Brad** direct din funcția **main** vom primi o eroare de compilare, deoarece membrii sunt **inaccesibili**. | Dacă vom dori să accesăm membrii clasei **Brad** direct din funcția **main** vom primi o eroare de compilare, deoarece membrii sunt **inaccesibili**. | ||
| Line 243: | Line 243: | ||
| </code> | </code> | ||
| - | <note warning>Acest lucru însă **nu** este o variantă indicată, deoarece **am încălcat principiul încapsulării datelor** și în plus, acum oricine poate modifica din exterior membrii clasei. După cum se poate observa, clasa **Brad** scrisă în această manieră se comportă exact ca o structură. Diferența între cele 2 (struct și class) constă în faptul că într-o structură totul este marcat cu **public** by default în timp ce o clasă are membrii by default marcați cu **private**. Vom menționa mai târziu cum putem respecta principiul încaspulării datelor pentru clasa **Brad** când vom discuta despre funcții membre (metode).</note> | + | <note warning>Acest lucru însă **nu** este o variantă indicată, deoarece **am încălcat principiul încapsulării datelor** și în plus, acum oricine poate modifica din exterior membrii clasei. După cum se poate observa, clasa **Brad** scrisă în această manieră se comportă exact ca o **structură**. Diferența între cele 2 (**struct** și **class**) constă în faptul că într-o structură **totul** este marcat cu **public** by default în timp ce o clasă are membrii by default marcați cu **private**. Vom menționa mai târziu cum putem respecta principiul încaspulării datelor pentru clasa **Brad** când vom discuta despre **funcții membre** (**metode**).</note> |
| == Moștenirea == | == Moștenirea == | ||
| Line 249: | Line 249: | ||
| Moștenirea (**Inheritance**) permite unei clase să **preia** proprietățile și comportamentele unei alte clase, oferind astfel posibilitatea reutilizării codului. În același timp, **clasa derivată (clasa moștenitoare)** poate adăuga funcționalități specifice pe care clasa de bază nu le are, extinzând astfel comportamentul acesteia și adaptându-l la nevoile proprii. | Moștenirea (**Inheritance**) permite unei clase să **preia** proprietățile și comportamentele unei alte clase, oferind astfel posibilitatea reutilizării codului. În același timp, **clasa derivată (clasa moștenitoare)** poate adăuga funcționalități specifice pe care clasa de bază nu le are, extinzând astfel comportamentul acesteia și adaptându-l la nevoile proprii. | ||
| - | <note>Ca și exemplu putem lua omul care este un mamifer. Omul la fel ca toate mamiferele are plămâni, dar spre deosebire de alte animale din categoria mamiferelor acesta are o postură bipedă. Vom detalia mai multe despre moștenire peste câteva laboratoare și tot atunci vom vorbi mai mult despre specificatorul de acces **protected**.</note> | + | <note>Ca și exemplu putem lua ***omul** care este un **mamifer**. Omul la fel ca toate mamiferele are **plămâni**, dar spre deosebire de alte animale din categoria mamiferelor acesta are o **postură bipedă**. Vom detalia mai multe despre **moștenire** peste câteva laboratoare și tot atunci vom vorbi mai mult despre specificatorul de acces **protected**.</note> |
| == Polimorfismul == | == Polimorfismul == | ||