This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
laboratoare:constructori-referinte [2019/10/05 18:47] Florin Mihalache [Obiective] |
laboratoare:constructori-referinte [2020/01/14 14:00] (current) Adriana Draghici bold |
||
---|---|---|---|
Line 156: | Line 156: | ||
</code> | </code> | ||
- | În Java, există conceptul de copy constructor, acesta reprezintând un constructor care ia ca parametru un obiect de același tip cu clasa în care se află constructorul respectiv. Cu ajutorul acestui constructor, putem să copiem obiecte, prin copierea membru cu membru în constructor. | + | În Java, există conceptul de **copy constructor**, acesta reprezintând un constructor care ia ca parametru un obiect de același tip cu clasa în care se află constructorul respectiv. Cu ajutorul acestui constructor, putem să copiem obiecte, prin copierea membru cu membru în constructor. |
<code java5> | <code java5> | ||
Line 338: | Line 338: | ||
**Task 1** - 3 puncte | **Task 1** - 3 puncte | ||
- | Să se creeze o clasă numită Complex, care are doi membri de tip int (real și imaginary), care vor fi de tip private. Realizați următoarele subpuncte: | + | Să se creeze o clasă numită //Complex//, care are doi membri de tip int (real și imaginary), care vor fi de tip private. Realizați următoarele subpuncte: |
- | * să se creeze trei constructori: primul primește doi parametri de tip int (primul desemnează partea reală a unui număr complex, al doilea partea imaginară), al doilea nu primește niciun parametru și apelează primul constructor cu valorile 0 și 0, iar al treilea reprezinta un copy constructor, care primește ca parametru un obiect de tip Complex, care este copiat în obiectul this | + | * să se creeze trei constructori: primul primește doi parametri de tip int (primul desemnează partea reală a unui număr complex, al doilea partea imaginară), al doilea nu primește niciun parametru și apelează primul constructor cu valorile 0 și 0, iar al treilea reprezinta un copy constructor, care primește ca parametru un obiect de tip Complex, care este copiat în obiectul //this// |
* să se scrie metode de tip getter și setter (remember primul laborator - proprietăți), prin care putem accesa membrii privați ai clasei | * să se scrie metode de tip getter și setter (remember primul laborator - proprietăți), prin care putem accesa membrii privați ai clasei | ||
- | * să se scrie o metodă de tip void numită addWithComplex, care primește ca parametru un obiect de tip Complex, prin care se adună numărul complex dat ca parametru la numărul care apelează funcția (adică la this) | + | * să se scrie o metodă de tip void numită ''addWithComplex'', care primește ca parametru un obiect de tip Complex, prin care se adună numărul complex dat ca parametru la numărul care apelează funcția (adică la //this//) |
- | * să se scrie o metodă de tip void numita showNumber, prin care se afișează numărul complex | + | * să se scrie o metodă de tip void numita ''showNumber'', prin care se afișează numărul complex |
**Task 2** - 2 puncte | **Task 2** - 2 puncte | ||
Line 351: | Line 351: | ||
** Task 3** - 3 puncte | ** Task 3** - 3 puncte | ||
- | Să se implementeze o clasă Point care să conțină: | + | Să se implementeze o clasă// Point// care să conțină: |
* un constructor care să primească cele două numere reale (de tip float) ce reprezintă coordonatele. | * un constructor care să primească cele două numere reale (de tip float) ce reprezintă coordonatele. | ||
- | * o metodă changeCoords ce primește două numere reale și modifică cele două coordonate ale punctului. | + | * o metodă ''changeCoords'' ce primește două numere reale și modifică cele două coordonate ale punctului. |
* o funcție de afișare a unui punct astfel: (x, y). | * o funcție de afișare a unui punct astfel: (x, y). | ||
- | Să se implementeze o clasă Polygon cu următoarele: | + | Să se implementeze o clasă //Polygon// cu următoarele: |
* un constructor care preia ca parametru un singur număr n (reprezentând numărul de colțuri al poligonului) și alocă spațiu pentru puncte (un punct reprezentând o instanță a clasei Point). | * un constructor care preia ca parametru un singur număr n (reprezentând numărul de colțuri al poligonului) și alocă spațiu pentru puncte (un punct reprezentând o instanță a clasei Point). | ||
* un constructor care preia ca parametru un vector, cu 2n numere reale reprezentând colțurile. Acest constructor apelează constructorul de la punctul de mai sus și completează vectorul de puncte cu cele n instanțe ale clasei Point obținute din parametrii primiți. | * un constructor care preia ca parametru un vector, cu 2n numere reale reprezentând colțurile. Acest constructor apelează constructorul de la punctul de mai sus și completează vectorul de puncte cu cele n instanțe ale clasei Point obținute din parametrii primiți. | ||
Line 363: | Line 363: | ||
** Task 4** - 2 puncte | ** Task 4** - 2 puncte | ||
- | În scheletul de cod aveți definită clasa Book, în care trebuie să implementați metoda toString(), și o clasă Main, în care se testează metoda toString() din Book. | + | În scheletul de cod aveți definită clasa //Book//, în care trebuie să implementați metoda [[https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html#toString()|toString()]], și o clasă //Main//, în care se testează metoda toString() din Book. |
== Resurse == | == Resurse == | ||
* {{:laboratoare:constructori-referinte:lab2-2019-schelet.zip|Schelet}} | * {{:laboratoare:constructori-referinte:lab2-2019-schelet.zip|Schelet}} | ||
+ | * {{:laboratoare:constructori-referinte:lab2-2019-sol.zip|Solutie}} | ||
* <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF laborator</a></html> | * <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF laborator</a></html> | ||
== Referințe == | == Referințe == |