Sunteți pe pagina 1din 4

Programarea Obiect Orientată , Limbajul Java, 2020-2021 CEITI

Laborator4. Tipuri de metode. Membrii statici și nestatici. Definirea constantelor. Excepții.

Exemple practice
Exemplu: Să se construiască clasa Persoana, ce are ca variabile de instanţă private nume, prenume și
virsta, iar ca metode:
- Constructorul clasei fără parametri;
- Constructorul clasei parametrizat;
- Metode de tip getXXX() pentru returnarea valorilor pentru atributele clasei;
- metoda detalii() ce va afișa detalii despre instanțe.
Scrieţi şi o clasă test pentru clasa Persoana care va avea ca metode:
- static int nrMinori(Persoana [] p) , metoda primește ca parametru o listă de persoane și va
calcula și returna numărul de persoane minore;
- public static void main(String [] args), în care creați o listă de persoane și apelați metodele
programate.
class Persoana{
private String nume, prenume;
private int virsta;
Persoana(){}
Persoana(String nume, String prenume, int virsta){
this.nume = nume;
this.prenume=prenume;
this.virsta=virsta;
}
public String getNume() {return nume;}
public String getPrenume() {return prenume; }
public int getVirsta() {return virsta;}
public void detalii() { System.out.println(nume +" "+prenume+" "+virsta);}
}

public class Test_Persoana {


static int nrMinori(Persoana [] p) {
int nr=0;
for (int i=0;i<p.length;i++)
if(p[i].getVirsta()<18)nr++;
return nr;
}
public static void main(String [] args) {
Persoana [] persoane=new Persoana[4];
persoane[0] = new Persoana("Creanga", "Ion",35);
persoane[1] = new Persoana("Eminescu", "Mihai",15);
persoane[2] = new Persoana("Donici", "Alecu",28);
persoane[3] = new Persoana("Alecsandri", "Vasile",10);

for (int i=0;i<persoane.length;i++) persoane[i].detalii();


System.out.println("=============================================");
int minori = nrMinori(persoane);
System.out.println("Minori sunt "+minori+" persoane.");
}
}
1
Programarea Obiect Orientată , Limbajul Java, 2020-2021 CEITI
În cazul în care optați pentru citirea datelor de la tastatură metoda main() vă arăta în felul următor:
public static void main(String [] args) {
Scanner cin = new Scanner(System.in);
System.out.println("Cite persoane are lista ? ");
int n = cin.nextInt();
Persoana [] persoane=new Persoana[n];
for (int i=0;i<n;i++) {
System.out.println("Introduceti datele persoanei >>> "+(i+1));
System.out.println("nume:");
String nume = cin.next();
System.out.println("prenume:");
String prenume = cin.next();
System.out.println("virsta:");
int virsta = cin.nextInt();
persoane[i] = new Persoana(nume, prenume,virsta);
cin.nextLine();
}
cin.close();
System.out.println("<<<Persoanele din lista >>>");
for (int i=0;i<persoane.length;i++) persoane[i].detalii();
System.out.println("=============================================");
int minori = nrMinori(persoane);
System.out.println("Minori sunt "+minori+" persoane.");
}
Lista creată mai sus este o lista statică, ceea ce înseamnă că nu pot fi adăugate alte elemente în
listă. Încercarea de a adăuga elemente noi va genera excepție. Este recomandat de lucrat cu listele
dinamice. Pentru a crea o listă dinamică folosiți clasa ArayList. Vom modifica exemplul de mai sus.
Codul de crearea a listei statice va fi înlocuit cu codul de creare a listei dinamice. În acest caz clasa
Test_Persoana va avea forma:
class Test_Persoana{
static int nrMinori(ArrayList<Persoana> p) {
int nr=0;
for (Persoana i:p)
if(i.getVirsta()<18)nr++;
return nr;
}
public static void main(String [] args) {
Scanner cin = new Scanner(System.in);
System.out.println("Cite persoane are lista ? ");
int n = cin.nextInt();
ArrayList <Persoana> persoane=new ArrayList<Persoana>();
for (int i=0;i<n;i++) {
System.out.println("Introduceti datele persoanei >>> "+(i+1));
System.out.println("nume:"); String nume = cin.next();
System.out.println("prenume:"); String prenume = cin.next();
System.out.println("virsta:"); int virsta = cin.nextInt();
persoane.add(new Persoana (nume, prenume,virsta));
cin.nextLine();
}
cin.close();

2
Programarea Obiect Orientată , Limbajul Java, 2020-2021 CEITI
System.out.println("<<<Persoanele din lista >>>");
for (Persoana i:persoane) i.detalii();
System.out.println("=============================================");
int minori = nrMinori(persoane);
System.out.println("Minori sunt "+minori+" persoane.");
}
}

Activități practice individuale


1. Testați exemplul în editorul de cod Java. Adăugați încă o secvență de cod care va afla numărul
de persoane care au atins majoratul. Programul va afișa cine sunt mai mulți în listă minorii sau
majorii. Preziceți și tratați eventualele excepții care ar putea duce la oprirea execuției
programului.
2. Elaborați clasa Animale ce are următoarele atribute private: denumire, culoare, nr_picioare,
areAripi și an_Nastere. Folosiți clasa ArrayList pentru stocarea unei liste de animale. Pentru
clasa Animale să se definească:
 Constructorul clasei care va realiza inițializarea datelor.
 Metode de obținere a valorilor variabilelor (gett-eri).
 Metoda main() în care instanțiați o listă ArrayList de n animale. Atât n cât și datele despre
animale să fie introduse de la tastatură.
 Afișați lista introdusă.
 Afișați numărul de animale de culoare gri.
Notă! Pentru a verifica dacă două stringuri sunt egale folosiți metoda equals(s) a clasei
String, astfel s1.equals(s2) va verifica dacă string-urile s1 și s2 sunt egale ca conținut.
 Afișați lista cailor.
 Afișați lista animalelor cu două picioare.
 Afișați lista animalelor cu aripi.

3
Programarea Obiect Orientată , Limbajul Java, 2020-2021 CEITI
3. De la tastatură se va citi o secvență de numere diferite de 0. Elaborați un program Java care va
crea o listă a numerelor pare și o listă a numerelor impare. Folosiți tratarea excepțiilor. Folosiți
clasa ArrayList pentru stocarea valorilor. Afișați listele la ecran.
4. Scrieţi clasa Student. Fiecare student are un nume, an, grupă, şi două note obţinute la o anumită
materie - una pe semestrul 1 iar cealaltă pe semestrul 2. Clasa conţine un constructor ce
iniţializează datele membru ale clasei la valorile parametrilor săi, o metodă care calculează şi
returnează media celor două note, şi o metodă de afişare ce afişează valorile datelor membru
şi valoarea mediei. Scrieţi și o clasă test pentru clasa Student în care să creați o listă de studenți.
Afișați datele tuturor studenților. Afișați media maximă.

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