220 likes | 412 Views
Programare Orientata Obiect. Curs 2 Platforma Java Clase si Obiecte. Continutul cursului. Introducere Platforma Java, Clase si Obiecte. Curs 2. Platforma Java 1.1 Masina Virtuala Java 1.2 Elemente de baza ale limbajului Java 2. Clase si Obiecte
E N D
Programare Orientata Obiect Curs2 Platforma Java Clase si Obiecte Curs 2
Continutul cursului • Introducere • Platforma Java, Clase si Obiecte Curs 2 – Platforma Java, Clase si Obiecte
Curs 2 • Platforma Java 1.1 MasinaVirtuala Java 1.2 Elemente de baza ale limbajului Java 2. ClasesiObiecte 2.1 ProgramareProceduralasiProgramareOrientataObiect 2.2 Conceptele de “Clasa” si “Obiect” 2.3 Membriiuneiclase 2.3.1 Declarareamembriloruneiclase 2.3.2 Initializareacampurilor 2.4 Metodeleuneiclase 2.4.1 Declarareametodelor 2.4.2 Invocareametodelor 2.5 Metoda “main” Curs 2- Platforma Java, Clase si Obiecte
C2. Platforma Java 1.1 Masina Virtuala Java • Garbage Collector • Programatorul nu are control asupra alocarii memoriei (spre deosebire de C/C++) . • Mai simplu si mai robust (risc redus de probleme legate de memorie) • Ruleaza in background si elibereaza memoria (si) in timpul rularii aplicatiei • Just In Time compiler (JIT) • Cunoscut si ca “Hot Spot” • Optimizeaza codul in timpul rularii pentru cresterea performantei Curs 2 – Platforma Java, Clase si Obiecte
C2. Platforma Java 1.1 Masina Virtuala Java • Securitate • Ofera control asupra drepturilor pe care le are aplicatia dezvoltate • Exemple: operatii de citire/scriere din/in fisiere, deschiderea de socket-uri, etc. • Face ca Java sa fie un mediu sigur, o trasatura importanta pentru sistemele distribuite • Class Loading • Incarcarea codului intermediar (bytecode) in masina virtuala pentru executie • Codul poate fi incarcat de pe discul local, din retea sau de pe internet • Permite descarcarea de aplicatii si applet-uri “on the fly” Curs 2 – Platforma Java, Clase si Obiecte
C2. Platforma Java 1.2 Elemente de baza ale limbajului Java • Tipuri de date • 8 tipuri primitive: • boolean, byte, short, int, long, float, double, char • Clase • String, Integer, Array, Frame, Object, Person, Animal, … • Array • Variabile • dataType identifier [ = Expression]: • Exemple de tipuri de date si de initializari: int[] intArray; intArray = new int[2]; intArray[0] = 12; intArray[1] = 6; Person pArray = new Person[10]; • int x; x=5; • boolean b = true; • Frame win = new Frame(); • String x = “Aplicatie Java”; Curs 2 – Platforma Java, Clase si Obiecte
C2. Platforma Java 1.2 Elemente de baza ale limbajului Java • Instructiuni • if, if-else, if-else if • switch • for, while, do-while • break • continue Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.1 Programare Procedurala si Programare Orientata Obiect • Unitatea de baza in programarea procedura este functia, in programarea orientata-obiect este clasa. • Programarea procedurala se concentreaza pe construirea de functii, pe cand POO porneste de la definirea claselor si apoi defineste metode (functii) si membrii (variabile) • Programarea procedurala separa datele de operatii, pe cand POO se concentreaza pe ambele aspecte. Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.2. Conceptele de “Clasa” si “Obiect” • “Clasa” este un sablon. Defineste variabile si metode pe care le suporta obiectul. • “Object” este o instanta a clasei. Fiecare obiect are la baza o clasa care defineste datele si comportamentul lor. Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.2. Conceptele de “Clasa” si “Obiect” • Declararea unei clase in Java: [public][abstract][final]class NumeClasa [extends NumeSuperclasa] [implements Interfata1 [, Interfata2 ... ]] { // Corpul clasei – membrii clasei } • Crearea unui obiect (Instantiere) NumeClasa numeObiect = new NumeClasa(); Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.3. Membrii unei clase • O clasa are 3 tipuri de membrii: • campuri: variabile care arata starea unei clase sau a unui obiect • metode: functii care permit schimbarea starii obiectului sau accesul la valoarea unui camp • clase si interfete imbricate Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.3. Membrii unei clase • Exemplu de clasa class Pencil { public String color = “red”; public int length; public float diameter; public static long nextID = 0; public void setColor (String newColor) { color = newColor; } } Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.3.1 Declarea membrilor unei clase • tip_data numeMembru; sau • tip_data numeMembru = val_initiala; • Tipuri de data • boolean, char, byte, short, int, long, float, double • Modificatori optionali • modificatori de acces (public, private, protected) • static • final Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.3.2 Initializarea membrilor • Nu neaparat cu constante • Daca nu sunt initializati, se considera valoarea implicita in functie de tip Tip Valoare initiala boolean false char ‘\u0000’ byte, short, int, long 0 float +0.0f double +0.0 object reference null Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.4 Metodeleuneiclase 2.4.1 Declarareametodelor • O metoda are 2 parti • Header • Costa din: modificatori (optionali), tip de data returnat, numelemetodei, lista de parametriisiclauzathrows (optional) • Corp • Exemplu: public classMyClass{ intday,month,year; StringgetDate() { return " " + day + "/" + month + "/" + year; } } Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.4.1 Declararea metodelor • O clasa poate avea mai mult de o metoda cu acelasi nume atat timp cat au lista de parametrii diferita. public class Pencil { . . . public void setPrice (float newPrice) { price = newPrice; } public void setPrice (Pencil p) { price = p.getPrice(); } } • Cum stie compilatorul ce metoda sa apeleze? Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.4.2 Invocarea (apelarea) metodelor • Metodele sunt apelate ca operatii ale claselor sau obiectelor prin folosirea operatorului punct (.) referinta.metoda(argumente) • Metode statice: • In afara clasei: “referinta” poate fi sau un nume de clasa sau un obiect instantiat din clasa • In cadrul unei clase: “referinta” poate fi omis • Metode nestatice: • “referinta” trebuie sa fie un obiect instantiat Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.4.2 Invocarea (apelarea) metodelor • Parametrii sunt trimisi prin valoare public void method1 (int a) { a = 6; } public void method2 ( ) { int b = 3; method1(b); // now b = ? // b = 3 } • Cand parametrul este un obiect, se trimite referinta la obiectul respectiv, dar prin valoare (!!) Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.4.2 Invocarea (apelarea) metodelor class PassRef{ public static void main(String[] args) { Pencil plainPencil = new Pencil("PLAIN"); System.out.println("original color: " + plainPencil.color); paintRed(plainPencil); System.out.println("new color: " + plainPencil.color); } public static void paintRed(Pencil p) { p.color = "RED"; p = null; } } Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.5 Metoda “main” • Este punctul de intrare in program • Masina virtuala localizeaza clasa in care se gaseste metoda main si incepe executia programului • Alte metode sunt apelate din main implicit sau explicit • Trebuie sa fie public, static si void Curs 2 – Platforma Java, Clase si Obiecte
C2. Clase si Obiecte 2.5 Metoda “main” • Cand un program Java este lansat in linia de comanda pot fi adaugate argumente ce sunt citite in program prin parametrul args[index]: class Greetings { public static void main (String args[]){ String name1 = args[0]; String name2 = args[1]; System.out.println("Hello " + name1 + “&“ +name2); } } • Java Jacky Mary Hello Jacky & Mary • Important: Valorile introduse sunt de tip string! Pentru a fi analizate ca valori numerice trebuie convertite. Curs 2 – Platforma Java, Clase si Obiecte