Programarea orientată pe obiecte este o tehnică de dezvoltare
a aplicaţiilor software bazată pe obiecte. Obiectul este conceputul fundamental al aceste tehnici. Un
obiect este un model software al unei entităţi sau concept din
realitate.
Un obiect este compus din atribute şi metode ( denumirea
echivalentă a unei metode din programarea liniară este funcţie
sau procedură). Atributele caracterizează starea obiectului la un
moment dat. Se pot efectua acţiuni asupra obiectelor, poate fi alterată
starea acestora sau acestea oferă servicii altor obiecte prin intermediul
metodelor.
Obiectele sunt construite pe baza unor şabloane sau template-uri numite clase.
O clasă specifică caracteristicile (atributele şi metodele) pe
care le va avea un obiect ce va fi creat pe baza respectivului şablon.
Procesul de construire a unui obiect se mai numeşte şi operaţie
de instanţiere.
Toate obiectele construite pe baza aceleiaşi clase
împărtăşesc caracteristicile definite de clasă (au
atributele şi metodele definite în cadrul clasei) dar se
diferenţiază prin valorile atributelor pe care le are fiecare obiect
in parte.
Obiectele sunt instanţe concrete ale claselor în memorie. Obiectele
interacţionează între ele în scopul
îndeplinirii unui anumit set de funcţionalităţi.
În java o clasă este definită prin intermediul cuvântului
cheie class urmat de numele concret al clasei.
class Senozor {}
Obeictele sunt instanţiate
(construite) în java folosind cuvântul cheie new.
Senzor s1 = new
Senzor();
Senzor s2;
ATENTIE: Obiectele sunt tipuri referinţă. Aceasta
înseamnă ca obiectele sunt efectiv construite în memorie de abia în
momentul în care este folosit operatorul new. În
condiţiile în care o variabilă de tip obiect este doar declarată
variabila de tip obiect va avea valoarea null (este cazul variabilei s2 declarată mai sus). Această
valoare specifică faptul că variabila de tip obiect nu referă
către nici un obiect în memorie. Încercare de apelare a unui atribut sau a
unei metode din cadrul unui obiect care nu a fost încă construit va
determina generarea erorii NullPointerException.
Un exemplu de clasă ce conţine atribute este prezentat în
continuare:
class
Senzor{
int value;
boolean active;
}
Pe baza clasei definite mai sus pot fi construite obiecte:
Senzor s1 = new
Senzor();
Senzor s2 = new
Senzor();
Accesarea unui membrul (atribut sau metodă) a unui obiect se face
prin intermediul numelui obiectului urmat de caracterul punct „.” şi apoi
de numele membrului ce se doreşte a fi accesat.
s1.value=10;
s1.active=true;
Obiectele oferă servicii altor obiecte sau efectuează
acţiuni asupra propriilor atribute prin intermediul metodelor definite în
cadrul clasei.
class
Senzor {
int value;
boolean active;
void checkValue(){
if(active&&value>15)
System.out.println(„Please take some
action.”);
}
}
Apelarea metodei din cadrul clasei de mai sus se face astfel:
Senzor s1 = new Senzor();
s1. checkValue();
EXERCITIU: Verificaţi funcţionarea aplicaţiei XXX.
EXERCITIU: Construiti o clasă cu numele Vehicle ce modelează o maşină. Clasa trebuie
să conţină minim 3 atribute şi minim două metode. Adăugaţi
de asemenea în cadrul clasei metoda main. În metoda main construit 3 obiecte de tipul Vehicl
şi apelaţi metodele şi atributele acestora.