Documente Academic
Documente Profesional
Documente Cultură
RAPORT
la lucrarea de laborator nr.4
la Programarea Orientată pe Obiecte
Chisinau, 2023
Scopul lucrării: Înțelegerea conceptelor de moștenire și compoziție în programare orientată pe
obiect.
Obiectivele lucrării:
● Înțelegerea conceptului de moștenire în programare orientată pe obiect și cum este
implementat într-un limbaj specific.
● Explorarea conceptului de compoziție și compararea diferitele abordări de compoziție
cu moștenirea.
● Identificarea situațiilor în care moștenirea și compoziția sunt cele mai potrivite pentru
rezolvarea problemelor specifice de proiectare a software-ului.
● Aplicarea conceptelor în practică, creând clase și structuri de date care utilizează
moștenirea sau compoziția într-un proiect de programare.
Sarcini practice:
Să se creeze o ierarhie de clase (de exemplu om și colaborator), unde fiecare clasa are un
anumit atribut (ocupă un anumit post și primește un anumit salariu). Să se supraîncarce
operatorii pentru intrări și ieșiri de obiecte, constructorul de copiere, operatorii de atribuire
utilizând funcțiile respective ale clasei de bază.
import java.util.Scanner;
class Om {
protected String nume;
protected String ocupatie;
protected double salariu;
public Om() {
this.nume = "";
this.ocupatie = "";
this.salariu = 0.0;
}
System.out.println("Detalii colaborator:");
colaborator.afiseaza();
Sarcina 2: Creați un program de gestionare a unui magazin online, folosind moștenirea pentru a
gestiona diferite tipuri de produse (de exemplu, Electronice, Haine, Alimente) și compoziția pentru a
construi coșul de cumpărături al clienților.
****************
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
class Produs {
protected String nume;
protected double pret;
protected int stoc;
class CosCumparaturi {
private List<Produs> produse = new ArrayList<>();
while (true) {
System.out.println("\n===== Meniu =====");
System.out.println("1. Adauga produs in cos");
System.out.println("2. Afiseaza totalul");
System.out.println("3. Iesire");
System.out.print("Alegeti o optiune: ");
switch (optiune) {
case 1:
System.out.println("\nAlegeți un produs:");
System.out.println("1. Componenta PC");
System.out.println("2. Haina");
System.out.println("3. Aliment");
int tipProdus = scanner.nextInt();
switch (tipProdus) {
case 1:
System.out.print("Introduceți tipul componentei PC: ");
String tipComponenta = scanner.next();
ComponentaPC componentaPC = new ComponentaPC(nume, pret, stoc,
tipComponenta);
System.out.print("Introduceți cantitatea dorită: ");
int cantitateComponenta = scanner.nextInt();
cos.adaugaProdus(componentaPC, cantitateComponenta);
break;
case 2:
System.out.print("Introduceți mărimea hainei: ");
String marime = scanner.next();
Haina haina = new Haina(nume, pret, stoc, marime);
System.out.print("Introduceți cantitatea dorită: ");
int cantitateHaina = scanner.nextInt();
cos.adaugaProdus(haina, cantitateHaina);
break;
case 3:
System.out.print("Introduceți categoria alimentului: ");
String categorie = scanner.next();
Aliment aliment = new Aliment(nume, pret, stoc, categorie);
System.out.print("Introduceți cantitatea dorită: ");
int cantitateAliment = scanner.nextInt();
cos.adaugaProdus(aliment, cantitateAliment);
break;
default:
System.out.println("Opțiune invalidă.");
}
break;
case 2:
double total = cos.calculeazaTotal();
System.out.println("Totalul cumpărăturilor: $" + total);
break;
case 3:
System.out.println("La revedere!");
System.exit(0);
break;
default:
System.out.println("Opțiune invalidă.");
}
}
}
}
Concluzie: