Cuprins
- Concepte fundamentale în programarea orientată pe obiecte 1
- Primul program Java 2
- De la sursă la execuţie 3
- Temă 5
Extras din curs
Un program dezvoltat cu ajutorul tehnologiei obiectuale are drept unitate de construcţie nu
subprogramul, ci obiectul. Un obiect înglobează date şi operaţii şi reprezintă o abstracţiune a
unei entităţi din lumea reală. Obiectele componente interacţionează, determinând transformarea
datelor de intrare în date de ieşire, adică rezolvarea problemei. Într-un program
dezvoltat în manieră obiectuală NU mai există date globale (sau, în orice caz, foarte puţine),
datele fiind repartizate şi înglobate în obiecte. Metoda obiectuală de dezvoltare respectă
principii ale ingineriei software precum:
— localizarea şi modularizarea: codul sursă corespunzător unui obiect poate fi scris şi
actualizat independent de alte obiecte;
— ascunderea informaţiei: un obiect are o interfaţă publică pe care celelalte obiecte o
pot utiliza pentru comunicare. Pe lângă interfaţa publică, un obiect poate
include date si operaţii private, „ascunse” faţă de alte obiecte, şi care pot fi
modificate oricând, fără a afecta restul obiectelor;
— reutilizarea codului: clasele de obiecte pot fi definite pe baza claselor existente,
preluând automat (prin moştenire) conţinutul acestora din urmă.
Concepte fundamentale în programarea orientată pe obiecte
Principalele concepte care stau la baza programării orientate pe obiecte sunt:
1) Abstractizarea este una dintre căile fundamentale prin care oamenii ajung să înţeleagă şi să
cuprindă complexitatea. Ea scoate în evidenţă toate detaliile semnificative pentru
perspectiva din care este analizat un obiect, suprimând sau estompând toate celelalte
caracteristici ale obiectului. În contextul programării orientate pe obiecte, toate
acestea se transpun astfel:
— obiectele şi nu algoritmii sunt blocurile logice fundamentale;
— fiecare obiect este o instanţă a unei clase. Clasa este o descriere a unei
mulţimi de obiecte caracterizate prin structură şi comportament
similare;
— clasele sunt legate între ele prin relaţii de moştenire.
2) Încapsularea este conceptul complementar abstractizării. Încapsularea este procesul de
compartimentare a elementelor care formează structura şi comportamentul unei
2
abstracţiuni; încapsularea serveşte la separarea interfeţei „contractuale” de implementarea
acesteia. Din definiţia de mai sus rezultă că un obiect este format din două
părţi distincte:
— interfaţa (protocolul);
— implementarea interfeţei.
Abstractizarea defineşte interfaţa obiectului, iar încapsularea defineşte reprezentarea
(structura) obiectului împreună cu implementarea interfeţei. Separarea interfeţei unui
obiect de reprezentarea lui permite modificarea reprezentării fără a afecta în vreun
fel pe nici unul dintre clienţi, deoarece aceştia depind de interfaţă şi nu de
reprezentarea obiectului-server.
3) Modularizarea constă în divizarea programului într-un număr de subunităţi care pot fi
compilate separat, dar care sunt cuplate (conectate) între ele. Gradul de cuplaj
trebuie să fie mic, pentru ca modificările aduse unui modul să afecteze cât mai
puţine module. Pe de altă parte, clasele care compun un modul trebuie să aibă
legături strânse între ele pentru a justifica gruparea (modul coeziv). Limbajele care
suportă conceptul de modul fac distincţia între:
— interfaţa modulului, formată din elementele (tipuri, variabile, funcţii etc.)
„vizibile” în celelalte module;
— implementarea sa, adică elemente vizibile doar în interiorul modulului respectiv.
4) Ierarhizarea reprezintă o ordonare a abstracţiunilor. Cele mai importante ierarhii în
paradigma obiectuală sunt:
— ierarhia de clase (relaţie de tip is a);
— ierarhia de obiecte (relaţie de tip part of).
Moştenirea defineşte o relaţie între clase în care o clasă foloseşte structuri şi
comportamente definite în una sau mai multe clase (după caz vorbim de moştenire
simplă sau multiplă). Semantic, moştenirea indică o relaţie de tip is a („este un/o”).
Ea implică o ierarhie de tip generalizare/specializare, în care clasa derivată
specializează structura şi comportamentul mai general al clasei din care a fost
derivată. Agregarea este relaţia între două obiecte în care unul dintre obiecte aparţine
celuilalt obiect. Semantic, agregarea indică o relaţie de tip part of („parte din”).
Primul program Java
class PrimulProgram{
public static void main(String[ ] arg) {
System.out.print(“Hello world!”);
Referindu-ne strict la structura acestui program, trebuie spus că programele Java sunt
constituite ca seturi de clase (în cazul nostru avem o singură clasă). Pentru descrierea unei
clase se foloseşte o construcţie sintactică de forma:
Preview document
Conținut arhivă zip
- Programare Java
- Lucrarea 1.pdf
- Lucrarea 10.pdf
- Lucrarea 11.pdf
- Lucrarea 12.pdf
- Lucrarea 2.pdf
- Lucrarea 3.pdf
- Lucrarea 4.pdf
- Lucrarea 5.pdf
- Lucrarea 6.pdf
- Lucrarea 7.pdf
- Lucrarea 8.pdf
- Lucrarea 9.pdf