Clase i obiecte SINTAX I SEMANTIC Abiliti Prezentarea
Clase și obiecte. SINTAXĂ ȘI SEMANTICĂ
Abilități: • Prezentarea situațiilor de utilizare a claselor. • Reprezentarea claselor prin diagrame. • Crearea unei clase conform specificațiilor propuse. • Declararea datelor și metodelor unei clase. • Protejarea membrilor clasei conform specificațiilor propuse. • Definirea metodelor unei clase. • Declararea obiectelor. • Accesarea datelor și metodelor unui obiect de tip pointer.
Principiile programării orientate pe obiecte. OOP – object oriented programming • Ideea POO este de a crea programele ca o colecţie de obiecte, unităţi individuale de cod care interacţionează unele cu altele, în loc de simple liste de instrucţiuni sau de apeluri de proceduri. • Obiectele POO sunt, de obicei, reprezentări ale obiectelor din viaţa reală (domeniul problemei), astfel încât programele realizate prin tehnica POO sunt mai uşor de înţeles, de depanat şi de extins decât programele procedurale.
Mecanismele fundamentale OOP 1. Abstractizarea; 2. Încapsularea; 3. Moștenirea; 4. Polimorfismul; 5. Reutilizarea.
1. Abstractizarea • Principiu care permite identificarea caracteristicilor şi comportamentului obiectelor ce țin nemijlocit de domeniul problemei. • Abstractizarea este simplificarea realității prin modelarea unor clase ce păstrează doar trăsăturile obiectului real care sunt esențiale și suficiente pentru atingerea scopului propus. Membrii clasei (câmpuri, metode, etc) definesc aceste trăsături.
2. Încapsularea • Încapsularea este un mecanism care combina codul si datele pe care le manipulează, menținând integritatea acestora fata de interferența cu lumea exterioara. • Este caracterizată prin 2 aspecte: • Gruparea comportamentelor şi caracteristicilor într-un tip abstract de date. • Definirea nivelului de acces la datele unui obiect.
3. Moștenirea. • Mostenirea este procesul prin care un obiect poate dobandi caracteristicile altui obiect. • Organizează şi facilitează polimorfismul şi încapsularea permiţând definirea si crearea unor clase specializate plecând de la clase (generale) care sunt deja definite - acestea pot împărtăşi (şi extinde) comportamentul lor fără a fi nevoie de redefinirea aceluiași comportament. • Moștenirea este mecanismul prin care un limbaj OOP permite să definim noi clase care încorporează sau extind o clasă deja definită. Noua clasă se numește clasă derivată.
4. Polimorfismul • Polimorfismul este calitatea care permite unei interfețe sa aibă acces la un grup generic de acțiuni. Termenul este derivat dintr-un cuvânt grecesc având semnificația “cu mai multe forme”. • Posibilitatea mai multor obiecte dintr-o ierarhie de clase de a utiliza denumiri de metode cu același nume dar, cu un comportament diferit.
5. Reutilizarea • Atunci când este creata o clasa, aceasta poate fi utilizata pentru a crea o mulțime de obiecte. Prin utilizarea moștenirii si încapsulării clasa amintita poate fi reutilizată. Nu mai este nevoie sa testam codul respectiv ci doar a îl utilizăm corect.
CLASE SI OBIECTE. CLASA OBIECT • O clasă descrie unul sau mai multe obiecte care pot fi precizate printr-un set uniform de date şi cod (funcționalitate); • Orice obiect are memoria sa proprie unde se păstrează valorile tuturor datelor sale; • Clasa definește caracteristicile si comportarea obiectelor. Reprezintă un set de planuri care precizează cum poate fi construit un obiect; • Un obiect este caracterizat de: • Orice obiect are un tip; • Un obiect este o instanță a unei clase; • nume – un identificator; • conține date de un anume tip si metode (servicii, operații) – funcții care accesează datele obiectului.
Definiție: • Clasele sunt entități logice care modelează obiecte din lumea reală sau obiecte abstracte. Clasele încapsulează date și funcții care operează cu aceste date. Caracteristicile obiectului se memorează în câmpurile clasei. Capabilitățile, acțiunile obiectului, se codifică în metodele clasei.
Descrierea clasei Cîmpurile și metodele unei clase se numesc membrii clasei. Date membre Funcții membre Câmpuri Metode Constante Proprietăți Constructori Destructori Operatori Indexatori Evenimente
Declararea claselor O clasă se declară cu ajutorul cuvântului cheie class Sintaxa declarării: class Nume. Clasa { //Câmpuri [modificator de acces] Tip nume; //Metode [modificator de acces] Tip. Retur Nume. Metoda (parametri) { } ; }
Modificatorul de acces al membrilor clasei: Atributul Descriere public Acces nelimitat private Acces limitat la propria clasă protected Acces limitat la propria clasă și la clasele derivate internal Acces limitat la programul care conține clasa protected internal Acces limitat la program și la clasele derivate Dacă modificatorul de acces lipsește, atunci membrul respectiv este în mod implicit private.
Cum se lucrează cu obiectele? 1. Mai întâi se definește clasa class A { //membrii clasei } 2. Acum putem utiliza tipul A pentru a crea obiecte A x = new A(); x. membru; x Obiectul creat în Heap
Exemplul 1:
Autoevaluare: • Care este procesul prin care un obiect poate prelua proprietățile altui obiect? a) încapsulare b) polimorfism c) moștenire d) abstractizare e) supraîncărcare
Autoevaluare: • Care este procesul prin care un obiect poate prelua proprietățile altui obiect? a) încapsulare b) polimorfism c) moștenire d) abstractizare e) supraîncărcare
- Slides: 18