Obiecte şi Clase

 

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.