Sunteți pe pagina 1din 2

Laborator 3

Obiectiv – crearea de abilităţi practice de lucru în limbajul Java cu:

• Pachete
• Specificatori acces
• Reutilizare cod prin compunere şi moştenire
• Utilizarea corectă a cuvântului cheie „final”

Suport bibliografic minimal – cursurile nr.1 şi nr.2

Indicaţii de lucru:
• Se vor exersa exemplele din curs ori de câte ori se va simţi nevoia, pentru înţelegerea modului
de lucru specific platformei Java
• Elementele fiecărui enunţ se vor adăuga gradual în cod

Probleme propuse:
Prb.1. Să se creeze pachetul „Proceduri” care să conţină clase Piesa, Agregat, Subsistem, Sistem,
Adaugă și TestPrb1. Exceptând TestPrb1, din fiecare constructor fără argumente se va printa un
mesaj distinct; de exemplu pentru Piesa, “piesa creata”. Clasa Adaugă conține un câmp inițializat de
tip Sistem și trei metode supraîncărcate (vezi diagrama) care vor returna o referință la obiectul curent
al clasei.

Task 1. Fără a indica specificatorii de acces la câmpuri, constructori și metode, creați în clasa
TestPrb1 din pachetul Proceduri, un sistem format din 3 piese, 2 agregate și un subsistem.

Task 2. Creați în clasa TestPrb1 în alt pachet și încercați formarea unui sistem din 3 piese, 2 agregate
și un subsistem. Ce constatați?

Task 3. Modificați clasele TestPrb1 din cele două pachete astfel încât să moștenească clasa Adaugă
și să conțină metoda oMetoda în a cărei definiţie să existe un apel la o metodă add() (vezi diagrama)

1
Prb.2. Să se creeze 2 clase: A şi B ce au constructori impliciţi. Să se creeze o clasă nouă C ce
moşteneşte A. În C să se creeze un obiect de tipul B. C nu are definit nici un constructor. În clasa
TestPrb2 să se creeze un obiect al clasei C şi să se explice rezultatele.

Prb.3. Să se modifice aplicaţia de la problema 2, astfel:


a. AA şi BB au constructori expliciţi în locul celor impliciţi (argument de tipul String);
b. CC are un constructor implicit definit în care se va iniţializa referinţa de tip BB. Ce se
observă?

Prb.4. Creaţi o clasă în care să fie definite 2 date de tip primitiv, una static şi final şi cea de-a doua
doar final. Demonstraţi deosebirea dintre acestea.

Prb.5. Creaţi o clasă MyClass ce conţine o referinţa final la tipul String, neiniţializată. Constructorul
explicit primeşte o referinţă de tip String cu care se va face iniţializarea datei de tip final. Încercaţi
modificarea referinţei. Ce observaţi?

S-ar putea să vă placă și