Curs 1&2 Intermediari Java (Clase Si Obiecte)
Curs 1&2 Intermediari Java (Clase Si Obiecte)
Clase și Obiecte
"Să începem cu o analogie. Să presupunem că doriți să construiți o navă mică. Lucrați la
un proiect și apoi trimiteți modelul într-o fabrică, unde o navă va fi asamblată conform
designului dvs.. Sau o duzină de nave sau mai multe nave după cum doriți. Ideea mea
este că zeci de nave identice pot fi realizate pe baza unui plan (blueprint)."
"În primul rând, scriem clase (realizăm planuri). Apoi, atunci când programul este rulat,
mașina Java creează obiecte bazate pe aceste clase. Este exact așa cum se construiesc
navele dintr-un model. Un plan - multe nave (O clasă – multe obiecte). Navele sunt
diferite. Au nume diferite și poartă încărcături diferite. Dar sunt în continuare similare.
Toate au un design identic și sunt capabile să îndeplinească sarcini similare. "
În Java, clasele și obiectele sunt interrelaționate. Nu putem avea un obiect fără o clasă,
cum nu putem avea o navă fără un plan (șablon).
Clasa din Java nu este decât o colecție de diverși membri de date (câmpuri) și funcții
ale membrilor (metode).
Obiectul din Java este o instanță a unei clase pentru a accesa proprietățile și metodele
definite.
CLASE
În Java, Class este o structură de date și va combina diferite tipuri de membri de date, cum ar
fi câmpurile, funcțiile membrilor și evenimentele într-o singură unitate.
EXEMPLU:
Vom defini o clasă Car care va ști să construiască mașini. Aceste obiecte (mașini) vor trebui să
aibă atribute comune cum ar fi:
Cu alte cuvinte, obiectul este o entitate care are stare și comportament. Aici, starea
înseamnă date și comportamentul înseamnă funcționalitate.
Obiectul este o instanță a unei clase. Toți membrii clasei pot fi accesați prin obiect.
Exemplu:
c1.nume = “Wolsvagen”;
c1.model = “Golf VII”;
c1.anDeFabricatie = 2017;
c1.startEngine();
}
//Ce credeți că va rezulta din codul de mai sus?
Membrii unei clase
CÂMPURI (FIELDS)
Când o variabilă este declarată direct într-o clasă, aceasta este adesea denumită câmp (sau atribut).
Nu este necesar, dar este o practică bună să începeți cu o primă literă cu majuscule atunci când denumiți
clase. De asemenea, este comun ca numele fișierului Java și numele clasei să se potrivească, întrucât
acesta face ca codul nostru să fie organizat. Cu toate acestea, nu este necesar.
Câmpurile le puteți accesa creând un obiect al clasei și folosind sintaxa punctului (.). Rulați, spre exemplu,
codul de mai jos:
class Car {
De asemenea, puteți lăsa câmpurile goale și le puteți modifica atunci când creați obiectul:
class Car {
String color;
int maxSpeed;
myObj.color = "red";
myObj.maxSpeed = 200;
System.out.println(myObj.color);
System.out.println(myObj.maxSpeed);
}
}
Acest lucru este util mai ales când se creează mai multe obiecte dintr-o clasă:
class Car {
String model;
String color;
int year;
System.out.println(ford.model);
System.out.println(opel.model);
}
}
METODELE CLASEI
Ați aflat din cursul Metode că metodele sunt utilizate pentru a efectua anumite acțiuni.
Metodele aparțin în mod normal unei clase și definesc modul în care se comportă un obiect al unei clase.
La fel ca în cazul câmpurilor, puteți accesa metode cu sintaxa punct (.). Cu toate acestea, rețineți că metoda
trebuie să fie publică. Și amintiți-vă că folosim numele metodei urmată de două paranteze () și un punct și
virgulă (;) pentru a apela (executa) metoda:
class Car {
String color; // câmp
int maxSpeed; // câmp
Motivul este simplu: o metodă statică poate fi accesată fără a crea un obiect al clasei, în timp ce
metodele publice pot fi accesate doar de obiecte.
Putem folosi mai multe clase pentru o mai bună organizare (una pentru câmpuri și metode și alta
pentru execuție). De exemplu clasa care conține metoda main() sa fie folosită pentru execuție, iar
clasa Car să fie folosită pentru câmpuri și metode. Clasele fiind create în pagini separate.
CONSTRUCTORI
Un constructor este o metodă specială care este folosită pentru inițializarea obiectelor. Avantajul unui
constructor este că se apelează automat atunci când este creat un obiect al unei clase.
Ca sintaxă, constructorul este de fapt o metodă cu acelasi nume ca al clasei din care face parte, dar care
nu are tip returnat de date. Pot fi creați oricât de mulți constructori in aceeași clasă, cu condiția să
primească un număr diferit de parametri.
Cel mai des poate fi utilizat pentru a seta valori inițiale pentru câmpuri:
Exercițiu: Creați două obiecte car1 și car2, apoi afișați modelul lor la consolă. Observați ce se întâmplă.
CONSTRUCTORI
Constructorii pot lua de asemenea, parametri, care sunt utilizați pentru inițializarea câmpurilor.
class Car {
public String model;
class Car {
public String model;
public String color;
public int year;
public Car(String modelName, String modelColor, int modelYear) { //Constructor cu mai multi parametri
model = modelName;
color = modelColor;
year = modelYear;
}
3. Scrieți un program care să afișeze informațiile (numele, anul înscrierii, salariul, adresa) a trei angajați
prin crearea unei clase numită Employee. Afișarea trebuie să fie următoarea:
Name Year of joining Address
Robert 1994 64C – WallStreet
Sam 2000 68D – WallStreet //folositi spatierea cu TAB in formatarea Stringului
John 1999 26B – WallStreet
4. Sa se creeze clasa Person. Aceasta să conțină atributele (câmpurile) nume, vârstă, sex, adresă, si
funcționalitățile (metodele) walk(), eat(), sleep().
Creați 2 obiecte, un băiat și o fată, care să acceseze aceleași atribute și metode, dar cu rezultate diferite.
Metodele să afișeze doar ceva text.
Afișați ambele obiecte sub forma:
“Salut, ma numesc... , am ... ani, locuiesc in ...” - //accesand campurile
“Johnny merge pe strada.” //accesand metodele
“Mary doarme pana tarziu.” //scrieți voi logica și la celelalte metode