Curs 2 - Clase Si Obiecte

26
Ingineria Sistemelor de Programare Bazele OOP

description

JAva- Clase si obiecte

Transcript of Curs 2 - Clase Si Obiecte

Page 1: Curs 2 - Clase Si Obiecte

Ingineria Sistemelor de Programare

Bazele OOP

Page 2: Curs 2 - Clase Si Obiecte

Cuprins

• Concepte OOP• Clasa si obiect• Variabile de instanta• Metode de instanta• Metode si variabile statice• Constructori

Page 3: Curs 2 - Clase Si Obiecte

Termeni OOP

• “Class” – o categorie de entitati• “Object” – o realizare concreta a unei clase

– Se mai numeste instanta• Obiectul are proprietati (o stare) si un

comportament• Exemplu:

– String s1 = new String(“Hello”);• String este o clasa• s1 este un obiect de tip String (o instanta a clasei String)

Page 4: Curs 2 - Clase Si Obiecte

VARIABILE DE INSTANTA

Page 5: Curs 2 - Clase Si Obiecte

Motivatie

• Obiectele stocheaza date. Acestea se mainumesc: campuri, atribute sau variabile de instanta

• Syntaxa:public class MyClass{

public SomeType filed1;}• Campurile stocheaza starea obiectului

Page 6: Curs 2 - Clase Si Obiecte

Exemplu

• Robot– Atributele x,y, speed

Page 7: Curs 2 - Clase Si Obiecte

Conventii java

• Numele claselor incep cu litera mare• Numele atributelor incep cu litera mica

Page 8: Curs 2 - Clase Si Obiecte

Obiectele si referintele

• Dupa ce o clasa a fost definita pot fi declaratevariabile (referinte) de acel tip

• Variabile de tip obiect au initial valoarea null

• Se utilizeaza operatorul new pentru a construiun obiect:

ClassName var1 = new ClassName();

Page 9: Curs 2 - Clase Si Obiecte

Accesarea variabilelor de instanta

• Se utilizeaza ‘.’ intre numele referintei (obiectului) si numele variabileivariableName.fieldName

• Exemplu:Robot r1 = new Robot();r1.x = 10;r1.y = 12;int d = r1.x – r1.y;

• Exceptie:– variableName poate lipsi daca suntem in interiorul

unei metode de instanta din cadrul clasei

Page 10: Curs 2 - Clase Si Obiecte

Conventii Java

• Atributele de instanta a unei clase suntdeclarate private

• Nu sunt accesibile din exterior de catre alteclase

Page 11: Curs 2 - Clase Si Obiecte

METODE DE INSTANTA

Page 12: Curs 2 - Clase Si Obiecte

Motivatie

Definitie: Functiile definite in cadrul unei clasese numesc metode (metode de instanta)

• Sintaxa:public class MyClass{

public ReturnType myMethod(…){…}}

• Implementeaza comportamentul obiectului

Page 13: Curs 2 - Clase Si Obiecte

Exemplu

• Robot– Atributele: x,y– Metodele: move, printLocation, setLocation

Page 14: Curs 2 - Clase Si Obiecte

Definirea metodeimethodModifiers returnType

methodName (parameter list) [throws exceptionList ]{

declarations and statementsreturn something;

}

Exemplu:public void move(){

x = x + speed;y = y + speed;

}

Page 15: Curs 2 - Clase Si Obiecte

Apelarea metodelor

• Metoda = functie asociata cu un obiect– variableName.methodName(arguments);

• Exemplu:String s1 = “Hello”;String s2 = s1.toUpperCase();

Page 16: Curs 2 - Clase Si Obiecte

Accesarea metodelor interne siexterne

• Accesarea metodelor din alte clase• Accesarea metodelor din aceiasi clasa

Page 17: Curs 2 - Clase Si Obiecte

Visibilitatea Metodelor si Variabilelor

• Private – accesibile doar in interior• Public – accesibil de oriunde• Protected – accesibil in interior si in clasele

derivate• Acces de pachet – accesibil din pachetul

curent

Page 18: Curs 2 - Clase Si Obiecte

VARIABILE SI METODICE STATICE

Page 19: Curs 2 - Clase Si Obiecte

Variabile si metode statice

• metoda de clasa / variabila de clasa• Accesibile prin numele clasei• Echivalentul metodelor si variabilelor globale din

alte limbaje• Variabilele statice:

– O singura locatie accesibila din toate obiectele prinnumele clasei

• Exemplu utilizare: clasa Math• Exemplu utilizare: sablonul de proiectare

Singelton

Page 20: Curs 2 - Clase Si Obiecte

CONSTRUCTORII

Page 21: Curs 2 - Clase Si Obiecte

Motivatie• Constructurii sunt metode speciale ce sunt apelate

automat atunci cand obiectele sunt create• Sintaxa:

public class MyClass{public MyClass(…){…}

}• Numele identic cu numele clasei• Nu au tip de return• Sunt utilizati pentru initializarea starii obiectului sau

pentru a efectua anumite operatii specifice la initializarea obiectului

Page 22: Curs 2 - Clase Si Obiecte

Constructorul implicit

• Este constructorul fara argumente• Este automat adaugat de compilator daca nu

este definit de programator

Page 23: Curs 2 - Clase Si Obiecte

Exemplu

• Exemplu constructor implicit

Page 24: Curs 2 - Clase Si Obiecte

Constructori cu argumente

• O clasa poate avea mai multi constructori• Difera prin numarul si tipul argumentelor• Cuvantul cheie “this” pentru a apela atributele

din cadrul instantei• Se utilizeaza “this” pentru a forta apelare unui

constructor din alt constructor

Page 25: Curs 2 - Clase Si Obiecte

Exemplu

• Exemplu constructori cu argumente si this

Page 26: Curs 2 - Clase Si Obiecte

SFARSIT