C2 – lpo (despre Date) cuprins



Yüklə 142 Kb.
tarix19.07.2018
ölçüsü142 Kb.
#57150


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:

  • 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



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.



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


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:

  • tip nume [= val initiala];

  • int i = 5;

  • Caraterizată prin: nume, valoare, tip, persistenţă şi vizibilitate.

  • Optional variabilele pot fi iniţializate în momentul declarării



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



Literali (constante)

  • Literalii reprezintă valori care nu sunt stocate în variabile.

  • numerici:

    • intregi (implicit int):
    • reali (implicit double):
  • nenumerici:

    • bolenei:
    • caracter:
    • sir:


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):



Paradigme … 2

  • 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)


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)



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.



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)





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


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.



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:



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



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



Compunerea

  • obiectele pot conţine referinţe la alte obiecte;

  • defineste o relatie “has-a” între obiecte.

  • public class Class2 {

  • Class1 unAtribut; //membru Class2

  • ...}

  • Class2 ob2 = new Class2();//instanţiere ob2

  • ob2.unAtribut = new Class1();//instanţiere ob1



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.



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.



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



Yüklə 142 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə