This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
laboratoare:agregare-mostenire [2019/10/14 00:18] Delia Stuparu [Exerciții] |
laboratoare:agregare-mostenire [2019/10/30 01:02] (current) Florin Mihalache [Resurse] |
||
---|---|---|---|
Line 388: | Line 388: | ||
Int c = new Int(10); | Int c = new Int(10); | ||
- | a.print(); // afișează Car | + | a.equals(a); // afișează Car |
- | b.print(); // afișează Car deoarece se face upcasting de la Dacia la Car | + | a.equals(b); // afișează Car deoarece se face upcasting de la Dacia la Car |
- | c.print(); // afișează Object deoarece se face upcasting de la Int la Object | + | a.equals(c); // afișează Object deoarece se face upcasting de la Int la Object |
</code> | </code> | ||
Line 544: | Line 544: | ||
**Task 2** [2p] | **Task 2** [2p] | ||
- | Din ea derivați clasele ''Lindt'', ''Chococo'', ''Baravelli'', ''ChocAmor''. Pentru un design interesant, cutiile vor avea forme diferite: | + | Din ea derivați clasele ''Lindt'', ''Baravelli'', ''ChocAmor''. Pentru un design interesant, cutiile vor avea forme diferite: |
* //Lindt// va contine ''length'', ''width'', ''height'' (float); | * //Lindt// va contine ''length'', ''width'', ''height'' (float); | ||
- | * //Chococo// va avea forma unui cilindru cu baza triunghilara, cu campurile ''baseHeight'', ''height'' si ''base'' (float) | ||
* //Baravelli// va fi un cilindru. Acesta va conține un camp ''radius'' și unul ''height'' (float); | * //Baravelli// va fi un cilindru. Acesta va conține un camp ''radius'' și unul ''height'' (float); | ||
* //ChocAmor//, fiind un cub, va conține un camp ''length'' (float); | * //ChocAmor//, fiind un cub, va conține un camp ''length'' (float); | ||
Line 566: | Line 565: | ||
**Task 4** - //''Upcasting''// [2p] | **Task 4** - //''Upcasting''// [2p] | ||
- | Acum că am stabilit tipul cutiilor de bomboane, putem construi cadoul, ramanand la latitudinea vostra care va fi designul lui. In pachetul java.util se gaseste clasa ''ArrayList'', care definește un resizable array, cu metodele specifice (add, size, get, lista lor completa este in [[https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/util/ArrayList.html|documentatie]]). Creati o clasă ''CandyBag'', care va conține un ArrayList cu mai multe cutii din fiecare tip. Creați obiecte de tip Chococo si testați egalitatea lor; | + | Acum că am stabilit tipul cutiilor de bomboane, putem construi cadoul, ramanand la latitudinea vostra care va fi designul lui. In pachetul java.util se gaseste clasa ''ArrayList'', care definește un resizable array, cu metodele specifice (add, size, get, lista lor completa este in [[https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/util/ArrayList.html|documentatie]]). Creati o clasă ''CandyBag'', care va conține un ArrayList cu mai multe cutii din fiecare tip. Creați obiecte de tip Lindt si testați egalitatea lor; |
**Task 5** - //''Downcasting''// [1p] | **Task 5** - //''Downcasting''// [1p] | ||
- | Adaugati clasei ''Baravelli'', functia ''printBaravelliDim()'', care va afișa dimensiunile razei și inaltimii. În mod analog, procedati cu celelalte tipuri de cutii, adaugand metodele ''printChococoDim()'', ''printChocAmorDim()'' si ''printLindtDim()'', în care să afișați dimensiunile fiecarei cutii. | + | Adaugati clasei ''Baravelli'', functia ''printBaravelliDim()'', care va afișa dimensiunile razei și inaltimii. În mod analog, procedati cu celelalte tipuri de cutii, adaugand metodele ''printChocAmorDim()'' si ''printLindtDim()'', în care să afișați dimensiunile fiecarei cutii. |
**Task 6** - //''Agregare''// [2p] | **Task 6** - //''Agregare''// [2p] | ||
Line 585: | Line 584: | ||
== Resurse == | == Resurse == | ||
- | * {{|Soluție}} (disponibilă din 28.10.2019) | + | * {{laboratoare:agregare-mostenire:lab3-sol-2019.zip|Soluție}} |
* [[laboratoare:old-exercises|Exerciții din alți ani]] | * [[laboratoare:old-exercises|Exerciții din alți ani]] | ||