Sunteți pe pagina 1din 14

Curs 2 POO

 Clase si obiecte
 Diagrama UML de clase
 Rezolvarea temelor din laboratorul 2

2019
Clase si obiecte

 In programarea orientata obiect, o clasa reprezinta un concept, cum ar fi


persoana, automobil, curs universitar, etc. Numele unei clase se scrie cu
initiala majuscula, la singular. Exemplu: Persoana, Automobil,
CursUniversitar.

 Obiectul este o instanta a unei clase, adica o particularizare concreta a unui


concept, cum ar fi o anumita persoana, un anumit automobil, un anumit
curs universitar, etc. Obiectele sunt reprezentate in program prin variabile
al caror nume incepe cu litera mica. Exemplu: p1, a1, c1.

 O clasa contine attribute ce descriu proprietatile (caracteristicile) clasei. De


exemplu clasa Persoana ar putea avea atributele: nume, prenume, salariu.
Numele atributelor se scriu cu initiala litera mica si sunt de obicei declarate
private (sunt cunoscute doar de metodele clasei respective).
Clase si obiecte (continuare)

 O clasa contine deasemenea metode ce descriu comportamentul (ce stie sa


faca conceptul). Numele metodelor se scriu cu initiala litera mica. Metodele
pot fi declarate private (utilizate doar de catre metodele clasei respective)
sau publice (utilizate si de metodele altor clase).

De exemplu, clasa Persoana ar putea avea metoda afiseaza ce afiseaza pe


ecran valorile atributelor unei persoane.
Sau ar putea avea metoda crestereSalariu care sa creasca salariul unei
persoane cu un anumit procent (dat ca parametru).

Metodele pot avea parametrii si pot returna ceva (o valoare sau un obiect).

 Atributele se ocupa de partea descriptiva (date) a conceptului, pe cand


metodele se ocupa de partea functionala (comportamentala) a conceptului.

 Atributele si metodele clasei sunt denumite membrii clasei.


Diagrama UML de clase

 Limbajul UML (Unified Modeling Language) este utilizat in procesul de


dezvoltare al software-ului, utilizand viziunea OO (Object Oriented).

 Clasele se reprezinta prin dreptunghiuri structurate in 3 zone.

• Prima contine numele clasei


• A 2-a contine atributele clasei
• A 3-a contine metodele clasei

Semnul - semnifica privat iar + public

 De observant ca sintaxa UML difera de


cea a limbajului Java.
Diagrama UML de clase (continuare)

Programul asociat diagramei, contine clasa Curs dar si clasa de test C02_MI
Diagrama UML de clase (continuare)

Clasa Curs contine 3 attribute si constructor.


Rezolvarea temelor din laboratorul 2

Tema 1. Definiti clasa Student cu atributele: nume, prenume, localitate. Definiti constructor,
metode get si set pt. toate atributele. Definiti metoda afiseaza care va afisa pe ecran datele
despre un student astfel:

Nume: ________
Prenume: ______
Localitate: _______

Programul de test va instantia 3 obiecte de tip student, s1, s2, s3 si va utiliza constructorul
pt. stabilirea valorilor atributelor.

Afiseaza cele 3 obiecte folosind metoda afiseaza.


Modifica localitatea celor 3 studenti.
Afiseaza din nou cei 3 studenti.
Rezolvarea temelor din laboratorul 2
(continuare)

Solutie: vom creea o noua aplicatie L02Teme si cate un fisier pt. fiecare clasa.
Click dr pe pachetul sursa l02teme => New => Java Class
Rezolvarea temelor din laboratorul 2
(continuare)

Solutie: package l02teme;


public class Student {
private String nume;
private String prenume;
private String localitate;

public Student(String n, String p, String l){


nume=n; prenume=p; localitate=l;
}
public String getNume(){return nume;}
public String getPrenume(){return prenume;}
public String getLocalitate(){return localitate;}

public void setNume( String n) { nume=n;}


public void setPrenume(String p){prenume=p;}
public void setLocalitate(String l){localitate=l;}

public void afiseaza(){


System.out.println("Nume:" + nume);
System.out.println("Prenume:" + prenume);
System.out.println("Localitate:" + localitate);
System.out.println();
}
}
Rezolvarea temelor din laboratorul 2
(continuare)

package l02teme;
public class L02Teme {
public static void main(String[] args) {
Student s1,s2,s3;

s1= new Student("Popescu","Ion","Constanta");


s2= new Student("Ionescu","Dan","Iasi");
s3= new Student("Stancu","Elena","Brasov");

s1.afiseaza(); s2.afiseaza();s3.afiseaza();

s1.setLocalitate("Bucuresti");
s2.setLocalitate("Cluj");
s3.setLocalitate("Craiova");

s1.afiseaza(); s2.afiseaza();s3.afiseaza();
}
}
Rezolvarea temelor din laboratorul 2
(continuare)

Tema 2. Definiti clasa Automobil cu atributele: nrInmatriculare, marca, model,


capacitateMotor, anFabricatie. Definiti constructor. Definiti doar metode set numai pt.
capacitateMotor si anFabricatie. Definiti metoda afiseaza care va afisa pe ecran datele despre
un automobil astfel:

Nr inmatriculare: ________
Marca: ______
Model: _______
Capacitate motor: ______
An fabricatie: ______

Programul de test va instantia 4 obiecte de tip automobil: auto1, auto2, auto3 si auto4.
Se va utiliza constructorul pt. stabilirea valorilor atributelor.

Afiseaza cele 4 obiecte folosind metoda afiseaza.


Modifica capacitate motor pt. auto1 si an fabricatie pt. auto2.
Afiseaza din nou cele 4 automobile.
Rezolvarea temelor din laboratorul 2
(continuare)

Solutie:
public Automobil (String n, String ma, String mo, int c, int a){
nrInmatriculare=n;
marca=ma;
model=mo;
capacitateMotor=c;
anFabricatie=a;
}
public void afiseaza(){
System.out.println("Nr inmatriculare:" + nrInmatriculare);
System.out.println("Marca:" + marca);
System.out.println("Model:" + model);
System.out.println("Capacitate motor:" + capacitateMotor)
System.out.println("An fabricatie:" + anFabricatie);
System.out.println();
package l02teme; }

public class Automobil { public void setCapacitateMotor(int c){


private String nrInmatriculare; capacitateMotor=c;
private String marca; }
private String model;
private int capacitateMotor ; public void setAnFabricatie(int a){
private int anFabricatie; anFabricatie=a;
}
}
Rezolvarea temelor din laboratorul 2
(continuare)

Automobil auto1, auto2, auto3, auto4;

auto1= new Automobil("CT 23 ABC", "Dacia", "Logan", 1200, 2018);


auto2= new Automobil("B 17 DEF", "Opel", "Corsa", 1100, 2017);
auto3= new Automobil("BV 44 MNO", "Ford", "Focus", 1500, 2016);
auto4= new Automobil("OT 13 XYZ", "Audi", "A4", 1600, 2015);

auto1.afiseaza(); auto2.afiseaza(); auto3.afiseaza(); auto4.afiseaza();

auto1.setCapacitateMotor(1400);
auto2.setAnFabricatie(2019);

auto1.afiseaza(); auto2.afiseaza(); auto3.afiseaza(); auto4.afiseaza();


Rezolvarea temelor din laboratorul 2
(continuare)

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