Se afișează postările cu eticheta blogdidactic. Afișați toate postările
Se afișează postările cu eticheta blogdidactic. Afișați toate postările

duminică, 8 februarie 2026

Polimorfism static și dinamic. Set de probleme

Repere teoretice: https://musteatadidactic.blogspot.com/2026/02/polimorfism-supraincarcarea-si.html

1. Deschideți editorul de cod Java și rulați Exemplul 1 din partea teoretică. Apoi realizați următoarele:
  • Adăugați o clasă Test în care instanțiați clasa Elev folosind toți constructorii.
  • Supraîncărcați constructorul pentru un parametru de tip int.
  • Testați funcționalitatea noului constructor supraîncărcat.
2. Deschideți editorul de cod Java și rulați Exemplul 3 din partea teoretică. Apoi realizați următoarele:
  • Instanțiați clasa Operații în metoda main() și testați metodele programate.
  • Supraîncărcați metoda suma() pentru un vector de elemente de tip int.
  • Supraîncărcați metoda suma() pentru 2 parametri de tip double.
  • Testați în metoda main() noile funcționalități.
3. Deschideți editorul de cod Java și rulați Exemplul 2 din partea teoretică. Apoi realizați următoarele:
  • Creați o clasă Test, în care să instanțiați clasa Manager și să verificați funcționarea metodei de calcul al salariului.
  • Definiți o clasă nouă Instructor, care extinde clasa Angajat și include o nouă caracteristică, nocivitate, care este un adaos fix pentru condiții de muncă nocive.
  • Supradefiniți în clasa Instructor metoda salariu(), astfel încât să includă în calcule și nocivitatea.
  • Supradefiniți în clase metoda toString().
  • Testați în metoda main() noua clasă.
  • Adăugați clasei Angajat constructor fără parametri.
  • Supraîncărcați constructorul clasei Angajat astfel încât acesta să inițializeze caracteristicele clasei.
  • Creați constructorul parametrizat al clasei Manager.
  • Adăugați o nouă clasă ConducatorAuto care va extinde clasa Angajat. Despre un conducător auto se cunoaște că are suplimentar la salariu o anumită sumă x, pentru că nu are zile de odihnă, și o altă sumă y, ce reprezintă plata pentru combustibil.
  • Creați constructorul parametrizat al clasei ConducatorAuto.
  • Supraîncărcați metoda int salariu() din superclasă, astfel încât la calculul salariul de bază să se ia în considerare și cele două adaosuri ale conducătorului auto.
  • Instanţiați clasa ConducatorAuto în clasa Test.
  • Adăugați metodei main() din clasa Test o listă statică de obiecte de tip Angajat. Încărcați în listă obiecte de tip Manager, Instructor și ConducatorAuto.
  • Adăugați clasei Test o metodă statică care va primi ca parametru o listă de tip Angajat și care va afișa elementele listei la ecran.
  • Apelați metoda pentru lista de angajați.
  • Adăugați clasei Test o metodă statică care va primi ca parametru o listă de tip Angajat și care va afișa la ecran angajatul cu cel mai mare salariu.
  • Testați funcționalitatea metodei pentru lista de angajați.
4. Compuneți un proiect Java ce va conține:
  • clasa Persoana definită de următoarele atribute: nume, prenume, idnp (codul personal de 13 cifre) și metode: constructorul clasei, afişare().
  • clasa Student, derivata clasei Persoana. Pentru clasa Student vor fi adăugate:
    • date: media notelor curente, grupa;
    • metode: constructorul clasei, va fi supradefinită metoda afişare(), bursa(). Bursa va fi determinată conform formulei: media*75 lei, dacă media este mai mare decât 7.5, în caz contrar va fi 0.
  • clasa Salariat, derivata clasei Persoana. Pentru clasa Salariat vor fi adăugate:
    • date: numărul de ore lucrate, plata pentru o oră, anul angajării;
    • metode: constructorul clasei, va fi redefinită metoda afişare(), salariu(). Salariul va fi determinat conform formulei: nr_ore*plata.
  • clasa Angajat_calificat, derivata clasei Salariat. Pentru clasa Angajat_calificat vor fi adăugate:
    • date: gradul calificării (1 superior, 2 mediu, 3 inferior);
    • metode: vor fi redefinite metodele afişare() și salariu(). Salariu va fi determinat conform formulei: nr_ore*plata*(100%+calificare).
  • clasa TestStudentiAngajați:
    • instanțiați o listă de 5 studenți.
    • adăugați o metodă care va primi ca parametru lista de obiecte de tip Student și va afișa numărul de studenți dintr-o grupă anumită.
    • testați această metodă pentru lista instanţiată.
    • adăugați o metodă care va primi ca parametru lista de obiecte de tip Student și va afișa studentul cu bursa minimă.
    • testați această metodă pentru lista instanţiată.
    • instanțiați o listă de 5 salariați.
    • instanțiați o listă de 5 studenți.
    • adăugați o metodă care va primi ca parametru lista de obiecte de tip Salariat și va afișa datele despre salariatul cu salariu minim.
    • Testați noile funcționalități.
  • Ce sugestii aveți pentru îmbunătățirea performanței codului?
Succes! 
❤️