1 / 22

C2 – LPO (despre Date)

C2 – LPO (despre Date). CUPRINS Model de date Tipuri de date primitive şi structurate. Variabile Paradigme de programare. Concepte de bază ale programării orientate pe obiect. Obiective. Dupa parcurgerea acestui curs ar trebuie sa puteti:

sana
Download Presentation

C2 – LPO (despre Date)

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. C2 – LPO (despre Date) CUPRINS Model de date Tipuri de date primitive şi structurate. Variabile Paradigme de programare. Concepte de bază ale programării orientate pe obiect.

  2. Obiective Dupa parcurgerea acestui curs ar trebuie sa puteti: • descrie conceptele de limbaj de programare, model date, tip de data simplu si structurat, varibila; • descrie paradigma de programare orientata pe proces si pe obiect • caracteristicile programarii orientate pe obiect • metodele de proiectare specifice POO

  3. Limbaj (de programare) si model de date • Limbaj creat artificial, ce utilizeata un model de date, pentru programarea calculatoarelor • Model de date: formalism matematic pentru descrierea structurilor de date si a operatorilor pentru validarea si manipularea acestora • Java utilizeaza modelul de date strict > exista categorii predefinite, numite tipuri, ce se folosesc pentru modelarea informatiilor de programat. • Tipul defineste reprezentare efectiva in calculator si posibilitatile de utilizare a datelor de un anume tip ce reprezinta informatiile de stocat si prelucrat.

  4. Tipuri de date Java • Tipuri de date primitive (implementate la nivelul JVM): • 6 tipuri de date numerice: • întregi: byte, short, int, long • reali: float, double • 1 tip de dată pentru caractere: char • 1 tip de dată bolean: boolean • Tipuri de date structurate (definite de utilizator): • clasele: class • intefeţele: interface • tablourile

  5. Variabile - 1 • Variabila = nume dat unui grup de locaţii de memorie ce la un moment dat, stochează o singură valoare. • Orice variabilă trebuie declarată. Forma generala a declaratiei este: tipnume[= val initiala]; inti= 5; • Caraterizată prin: nume, valoare, tip, persistenţă şi vizibilitate. • Optional variabilele pot fi iniţializate în momentul declarării

  6. Variabile - 2 • Numele unei variabile trebuie să înceapă cu o literă din alfabet sau underscore ( _ ) sau $ • Urmatoarele caractere pot contine si cifre, dar nu spatii sau operatori (+, -, *, / etc.) • Nu se poate folosi un cuvânt rezervat (if, for, while, class …) al limbajului Java ca nume de variabila • Lungimea numelui este nelimitatã • Este semnificativã scrierea cu litere mari sau mici Nume gresite masa#ideala a-1 x*1 for if 1x Nume corecte A x1 Masa x2 masa$ideala masa_ideala

  7. Literali (constante) • Literalii reprezintă valori care nu sunt stocate în variabile. • numerici: • intregi (implicit int): • reali (implicit double): • nenumerici: • bolenei: • caracter: • sir: • 0 18 -23232 (int în baza 10) • 077 0123 (int în baza 8) • 0x0 0xff 0X1FF (int în baza 16) • 1L 022L 0x1FFFL (long) 1.0 4.2 0.47 (double) 1.23e12 4.12E-9 (double) 6.3f 5.62F 4.12E9F (float) true false ’a’ ’\n’ ’\077’ ’\u005F’ ”Salut/n”

  8. Paradigme … 1 • Arhitectura von Neumann, datează din anii 1940, e una din arhitecturile hard. posibile ale calc. numerice care are în centrul ei o unit. Centrala de procesare (CPU in engleza) și o unitate separată de memorare (RAM) în care se stochează atât date cât și instrucțiuni • Hard: RAM + CPU ➔ Soft: Date + Cod = Program (hard-ul determina soft-ul) • Proiectarea programelor pot fi realizată plecând de la Date sau Cod ➔ 2 paradigme (metode de programare):

  9. programare orientată pe proces: proiectarea pleacă de la Cod (algoritm); Algoritmi + Structuri de date = Program Complexitate program < 100.000 linii de cod. programare orientată pe obiect: proiectarea pleacă de la Date ; Obiecte + Mesaje = Program Programare “condusă” de date (accesul la cod “controlat ” de date) Paradigme … 2

  10. Avantaje POO • Simplifică înţelegerea aplicaţiei prin formarea de subgrupuri (organizare clara) • Reduce complexitatea sarcinilor în subgrupuri mai usor de gestionat • Creeaza cod reutilizabil • Reduce complexitatea si timpul de dezvoltare • Codul se poate extinde (adapta) • Subsistemele sunt clar definite • Interactiunile sunt clar definite intre subsisteme • Implementarea este încapsulata (codul si datele sunt grupate)

  11. Conceptul de Obiect • O structură de date, de un tip particular, numită clasă (class); • Contine date (atribute) si cod (comportament) grupate într-un tip de date special; • Ascunde datele dupã un nivel de funcþii numite operatii; • Proprietati comune ale obiectelor: • identitate ➔ fiecare obiect este unic în spaţiu şi timp; • stare (variabile de instanţă) ➔ definită de valorile de atribute; • comportament (metode) ➔ definit prin operatiile ce se pot efectua asupra atributelor - algoritm + manipulare de date. • Nu este un tip primitiv ca int sau boolean ci unul referinþã, stocat pe heap.

  12. Conceptul de clasa • o descriere (date + cod) a obiectelor; • datele definesc starea; • codul defineste functionalitatea (operatiile permise sau actiunile asupra datelor); • un sablon pentru alocarea memoriei; • tipul de date pe baza caruia se instantiaza (creeaza) obiectele (new - operator de creare, insantiere) inta, b; a = 1; b = a; printf(”%i”,a); Class1ob1 = new Class1(); Class1ob2; ob1.varsta = 10; ob2 = ob1; ob2.afisare()

  13. Reguli ale POO • Totul este obiect; • Fiecare obiect este o instantiere a unui clase (tip de date structurat - class). • Programul este o colectie de obiecte legate între ele care comunica. • Comunicatia se face prin apeluri de metode; • Legãturile dintre obiecte se numesc relatii si pot fi clasificate în: • compunere “has-a”; • mostenire “is-a”.

  14. Caracteristici POO • Încapsulare: păstrarea laolaltă a datelor împreună cu codul care le manipulează; metodele publice pot proteja datele private. • Moştenire: partajarea între obiecte a funcţionalitătii şi a datelor comune => ierarhii de clasificare ce uşurează gestionarea conceptelor. • Polimorfism: permite scrierea interfeţe generice pentru un grup de acţiuni înrudite => se reduce complexitatea; • Mesaje: • Obiectele legate între ele comunică prin mesaje; • La nivel de obiect, fiecare operaţie are asociat un mesaj; • Obiectul, la primirea unui mesaj valid, apelează automat, operaţia asociată. • În Java nu avem mesaje, metodele se apelează direct.

  15. Declaraţia de clasă • o clasă publică se scrie într-un fişier sursă Java; • numele clasei (publice) trebuie sã fie acelasi cu numele fisierului sursã java: public class MyClass { ... } >>> MyClass.java • Structura unei clase este:

  16. Rezumat • Orice limbaj de programare are la baza un model (matematic) de date: date + operatori. • Java foloseste modelul de date strict in care exista categorii predefinite numite tipuri • Java implementeaza tipuri simple si structurate. Orice data este stocata intr-o variabila de un anumit tip. • Programarea in Java este dictata de date si se numeste orientat pe obiect. • Programarea orientata pe obiect are multiple avantaje dar si oblica programatorul sa respecte reguli clare. • Obiectele se creeaza (cu operatorul new) pe baza clasele ce sunt tipuri (sabloane) de date definite de utilizator

  17. Crearea obiectelor, utilizare • obiectele se creează (instantiaza) cu operatorul new: obRefName = new className(); • .new face urmãtoaerele: 1. alocă spaţiu pe heap pentru noul obiect; 2. apelează o metodă specială numită constructor prin care se iniţializează obiectul; 3. întoarce o referinţă la noul obiect. • operatorul "punct" conecteazã clasa si obiectele cu membrii (variabilele de instanþã si metodele): obRefName.v1 sau obRefName.metoda_1().

  18. Compunerea • obiectele pot conţine referinţe la alte obiecte; • defineste o relatie “has-a” între obiecte. public class Class2 { Class1unAtribut; //membru Class2 ...} Class2 ob2 = new Class2();//instanţiere ob2 ob2.unAtribut = new Class1();//instanţiere ob1

  19. Moştenirea • evită repetarea scrierii codului; • are la bazã partajarea funcþionalitãþiilor comune; • dã o interfatã unicã unor comportamente distincte; • defineste o relatie “is-a” între clase. public class Dreptunghi extends Forma { ... }

  20. Intrebari • Care sunt tipurile simple numerice din Java? • Dati exemple de literalii reali din Java. • Ce este clasa si cum se creeaza obiectele din clase? • Care sunt caracteristicile POO? • Explicatie conceptele de compunere si mostenire.

  21. Bibliografie • http://www.oracle.com/technetwork/java/javase/documentation/index.html • http://docs.oracle.com/javase/6/docs/ • Ştefan Tanasă, Cristian Olaru, Ştefan Andrei, Java de la 0 la expert, Polirom, 2003, ISBN: 973-681-201-4. • Herber Schild, Java 2 - The Complete Reference, Fourth Edition, Osborne, 2001, ISBN: 0-07-213084-9. • Deitel H.M., Deitel P. J., Java - How to programm, Fith Edition, Prentice Hall, 2003, ISBN: 0-13-120236-7. • http://www.east.utcluj.ro/mb/mep/antal/downloads.html

More Related