E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale Java

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

DEVELOPMENT  /  Java  /  Introducere in Java (8)

Conceptele programarii orientate pe obiecte

22.06.2009
Conceptele programarii orientate pe obiecte

Obiectele reprezinta cheia pentru intelegerea programarii orientate pe obiecte. In acest tutorial vei putea citi despre obiecte, clase, mostenire si interfete in Java.

Total vizualizari: 13563 13563 afisari   |   Comentarii  0   |   Rating   |   (2 voturi)   |   Timp necesar: 20 min 20 min   |   Nivel de cunostiinte necesar: Incepator  Incepator

Sursa:  Java.sun.com  
Autor:  Java.sun.com
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1 2 »
comenteaza printeaza

Obiectele reprezinta cheia pentru intelegerea programarii orientate pe obiecte. Priveste in jur si vei observa multe exemple de obiecte reale: un caine, biroul, televizorul, bicicleta.

Obiectele reale au doua caracteristici: au stare si comportament. Cainii au stare (nume, culoare, rasa, le este foame) si comportament (latra, alearga, dau din coada). Si bicicletele au stare (trepte de viteza, cadenta a pedalei, frane) si comportament (schimbarea vitezei, schimbarea cadentei pedalei, aplicarea franei). Identificarea starii si a comportamentului in cazul obiectelor reale reprezinta o metoda minunata de a incepe sa gandesti in termenii programarii orientate pe obiecte.

Rezerva-ti chiar acum un minut pentru a observa obiectele reale aflate langa tine. In cazul fiecarui obiect observat, pune-ti doua intrebari: "In ce stare se afla acest obiect?" si "Care este comportamentul posibil al acestui obiect?". Scrie aceste observatii. Vei vedea cum obiectele reale variaza ca si complexitate; lampa de birou poate avea doar doua stari (aprinsa, stinsa), dar aparatul de radio ar putea avea stari suplimentare (deschis, inchis, marirea sau micsorarea volumului, cautare, scanare si reglare). Mai poti observa ca anumite obiecte vor contine alte obiecte. Aceste observatii reale se pot traduce in lumea programarii orientate pe obiecte.

Un obiect software

Obiectele software sunt din punct de vedere conceptual similare obiectelor lumii reale: si acestea au stare si comportament. Un obiect isi pastreaza starea in campuri (variabile in anumite limbaje de programare) si isi expun comportamentul prin metode (functii in anumite limbaje de programare). Metodele opereaza asupra starii interne a unui obiect si servesc ca mecanism primar in cazul comunicarii de la obiect la obiect. Ascunderea starii interne si solicitarea ca orice interactiune sa se execute prin intermediul metodelor obiectelor poarta numele de incapsulare a datelor - principiul fundamental al programarii orientate pe obiecte.

Considera de exemplu o bicicleta:

O bicicleta modelata ca obiect software

Atribuind stari (viteza curenta, cadenta curenta a pedalei si trepte de viteza) si furnizand metode pentru schimbarea starii, obiectul controleaza modul in care lumii exterioare ii este permis sa-l utilizeze. De exemplu, daca bicicleta are doar 6 trepte de viteza, o metoda de schimbare a vitezelor ar putea respinge orice valoare care este mai mica de 1 sau mai mare decat 6.

Divizarea codului in obiecte software individuale furnizeaza un numar de avantaje, cum ar fi:

1. Modularitatea: Codul sursa pentru un obiect poate fi scris si mentinut independent de codul sursa al altor obiecte. De indata ce a fost creat, un obiect poate fi transferat cu usurinta in cadrul sistemului.

2. Ascunderea informatiei: Interactionand doar cu metodele obiectelor, detaliile implementarii lor interne raman ascunse lumii exterioare.

3. Reutilizarea codului: Daca un obiect exista deja (poate a fost scris de un alt dezvoltator software), poti utiliza obiectul in programul tau. Aceasta le permite specialistilor sa implementeze/testeze/corecteze obiecte complexe, cu anumite sarcini, despre care pot fi convinsi ca vor rula in propriul cod.

4. Usurinta conectarii si corectarii: Daca un anumit obiect se dovedeste a fi problematic, pur si simplu il poti indeparta din aplicatie si atasa un alt obiect pentru a-l inlocui. Este asemeni reparatiei problemelor mecanice din lumea reala. Daca se strica un surub, il inlocuiesti pe acesta, nu intregul mecanism.

Ce este o clasa?

In lumea reala, deseori vei gasi multe obiecte individuale de acelasi fel. Pot exista mii de alte biciclete, toate avand aceleasi caracteristici, fiind acelasi model. Fiecare bicicleta a fost construita dupa acelasi tipar, deci contine aceleasi componente. In termenii programarii orientate pe obiecte, spunem ca bicicleta este o instanta a clasei de obiecte cunoscute sub numele de biciclete (Bicycle). O clasa reprezinta tiparul dupa care sunt create obiectele individuale.

Urmatoarea clasa Bicycle reprezinta una dintre implementarile posibile ale unei biciclete:

class Bicycle {
 
       int cadence = 0;
       int speed = 0;
       int gear = 1;
 
       void changeCadence(int newValue) {
            cadence = newValue;
       }
 
       void changeGear(int newValue) {
            gear = newValue;
       }
 
       void speedUp(int increment) {
            speed = speed + increment;   
       }
 
       void applyBrakes(int decrement) {
            speed = speed - decrement;
       }
 
       void printStates() {
            System.out.println("cadenta:"+cadence+" viteza:"+speed+" treapta:"+gear);
       }
}

Sintaxa limbajului de programare Java poate parea ceva nou pentru tine, dar designul acestei clase se bazeaza pe discutia precedenta referitoare la obiectele de tip bicicleta. Campurile cadence, speed, si gear reprezinta starea obiectului si metodele (changeCadence, changeGear, speedUp etc.) definesc interactiunea cu lumea exterioara.

Poate ai observat ca aceasta clasa Bicycle nu contine o metoda main. Aceasta, deoarece nu este o aplicatie completa; reprezinta doar tiparul pentru bicicletele care ar putea fi utilizate intr-o aplicatie. Responsabilitatea crearii si utilizarii noilor obiecte Bicycle apartine altei clase a aplicatiei tale.

Iata o clasa BicycleDemo care creaza 2 obiecte separate Bicycle si apeleaza metodele acestora:

class BicycleDemo {
     public static void main(String[] args) {
 
          // Creeaza doua obiecte de tip Bicycle
          Bicycle bike1 = new Bicycle();
          Bicycle bike2 = new Bicycle();
 
          // Apeleaza metodele pentru aceste obiecte
          bike1.changeCadence(50);
          bike1.speedUp(10);
          bike1.changeGear(2);
          bike1.printStates();
 
          bike2.changeCadence(50);
          bike2.speedUp(10);
          bike2.changeGear(2);
          bike2.changeCadence(40);
          bike2.speedUp(10);
          bike2.changeGear(3);
          bike2.printStates();
     }
}

Rezultatul acestui test afiseaza cadenta finala a pedalei, viteza si treptele celor doua biciclete:

cadenta:50 viteza:10 treapta:2

cadenta:40 viteza:20 treapta:3

Pagina:
1 2 »
comenteaza printeaza
Alte tutoriale Java:
Noteaza acest tutorial
Rating tutorial
 
(2 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
4170
Tutoriale scrise de kheops
kheops Rang utilizator kheops - Mediu
4084
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4080
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
4055
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
3870
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
PSD Fireworks Bridge Java MySQL XHTML AJAX Sony Vegas RoR Vista Dreamweaver Fotografie Action Script Excel StyleSheet Powerpoint Word PHP Lightroom Gimp SEO COREL DRAW Python Javascript CSS XML Photoshop HTML Illustrator JSON Verilog SWF Outlook Ruby on Rails Swift 3D Flash
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software