1 / 21

Programare Orientata Obiect

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

Download Presentation

Programare Orientata Obiect

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programare Orientata Obiect Curs2 Platforma Java Clase si Obiecte Curs 2

  2. Continutul cursului • Introducere • Platforma Java, Clase si Obiecte Curs 2 – Platforma Java, Clase si Obiecte

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

More Related