o clasa reprezintă un set de obiecte ce au aceeași structura si comportament

5
O Clasa reprezintă un set de obiecte ce au aceeași structura si comportament. Clasa determina structura obiectelor  pe baza variabilelor specifcate, care sunt conținute in fecare instanță/obiect al clasei. Clasa determina comportamentul obiectelor pe baza metodelor de instanță, care exprima comportamentul acelor obiecte. Structura e determinata de VA! A"!#$. Comportamentul e determinat de %$&O'$. !deea conceptului de OO( este de a permite claselor posibilitatea de a exprima similarități intre obiecte ce )mpărtășesc in comun anumite structuri si comportamente Aceste similarități pot f exprimate utiliz*nd %OS&$+!$A sau (O#!%O!S%-#. .. $xtinderea claselor de0a existente $xista de0a o clasa care poate f adaptata cu c*teva modifcări sau adău1iri. Acest lucru e mult mai comun decat creearea unor 1rupuri de clase sau subclase de la O. Clasa existenta poate f extinsa pentru a 2ace o subclasa. Public class <subclass name> extends <existing class name> {  // } Protected se foloseste atunci cand vine vorba de subclase.  Atunci cand acest modicator d e acces este aplicat la o metoda sau o variabila membru a unei clase , acel membru poate utilizat intro subclasa, direct sau indirect, al clasei in care acesta e denit, dar nu poate utilizat in nonsubclase. !xista o exceptie" un membru prote#at poate de asemenea accesat de catre orice clasa din acelasi pac$age  & ermenul de mosternire se re2era la 2aptul o clasa poate mosteni o parte sau toata structura si comportamentul ei din alta clasa. Clasa care 2ace mostenirea s.n S-"C#ASA a clasei pe care o mosteneste. A este superclasa a lui " " este subclasa a lui A " o mosteneste pe A %lass & extends A {  //  // } O variabila care poate retine o re2erință către un obiect din clasa A, poate retine o re2erință si către un obiect dintr3o subclasa 4Clasa "5 a acesteia.

Upload: gabriel-simon

Post on 13-Apr-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

7/23/2019 O Clasa Reprezintă Un Set de Obiecte Ce Au Aceeași Structura Si Comportament

http://slidepdf.com/reader/full/o-clasa-reprezinta-un-set-de-obiecte-ce-au-aceeai-structura-si-comportament 1/5

O Clasa reprezintă un set de obiecte ce au aceeași structura si comportament.

Clasa determina structura obiectelor  pe baza variabilelor specifcate, care suntconținute in fecare instanță/obiect al clasei.

Clasa determina comportamentul obiectelor pe baza metodelor de instanță, care

exprima comportamentul acelor obiecte.Structura e determinata de VA!A"!#$.

Comportamentul e determinat de %$&O'$.

!deea conceptului de OO( este de a permite claselor posibilitatea de a exprimasimilarități intre obiecte ce )mpărtășesc in comun anumite structuri sicomportamente

Aceste similarități pot f exprimate utiliz*nd %OS&$+!$A sau (O#!%O!S%-#.

.. $xtinderea claselor de0a existente

$xista de0a o clasa care poate f adaptata cu c*teva modifcări sau adău1iri. Acestlucru e mult mai comun decat creearea unor 1rupuri de clase sau subclase de laO.

Clasa existenta poate f extinsa pentru a 2ace o subclasa.

Public class <subclass name> extends <existing class name> {

 // 

}

Protected se foloseste atunci cand vine vorba de subclase.

 Atunci cand acest modicator de acces este aplicat la o metoda sau o variabilamembru a unei clase , acel membru poate utilizat intro subclasa, direct sauindirect, al clasei in care acesta e denit, dar nu poate utilizat in nonsubclase.

!xista o exceptie" un membru prote#at poate de asemenea accesat de catreorice clasa din acelasi pac$age

 &ermenul de mosternire se re2era la 2aptul o clasa poate mosteni o parte sautoata structura si comportamentul ei din alta clasa.

Clasa care 2ace mostenirea s.n S-"C#ASA a clasei pe care o mosteneste.

A este superclasa a lui "

" este subclasa a lui A

" o mosteneste pe A

%lass & extends A {

 // 

 // 

}

O variabila care poate retine o re2erință către un obiect din clasa A, poate retine o

re2erință si către un obiect dintr3o subclasa 4Clasa "5 a acesteia.

7/23/2019 O Clasa Reprezintă Un Set de Obiecte Ce Au Aceeași Structura Si Comportament

http://slidepdf.com/reader/full/o-clasa-reprezinta-un-set-de-obiecte-ce-au-aceeai-structura-si-comportament 2/5

'e exemplu, un obiect de tipul %ar poate f atribuit unei variabile din clasa'e(icle.

'eci variabila ce retine o re2erință către un obiect din clasa %ar  4Clasa A5, poateretine si o re2erință către un obiect din clasa 'e(icle 4Clasa B5.

m)%ar * este o variabila de tipul C6ar 4Caracter5 ce este declarata si inițializatăprin expresia7

• Car m8Car 9 ne: Car 45;

%ar  < clasa, m)%ar  < variabila, %ar  < obiectul;

•  'e(icle m)'e(icle + m)%ar 

•  'e(icle m)'e(icle + ne %ar-

-n obiect din clasa %ar , ruc$  sau 0otorc)cle este automat un obiect din clasa

%ar Variabila m8Ve6icle tine o re2erință care un obiect de tipul %ar , care automat estesi un obiect al clasei %ar. Obiectul tine minte ca de 2apt este unul de tipul %ar sinu doar un 'e(icle.

(entru a verifca daca un obiect aparține unei clase se 2olosește expresia7

•  if -m)'e(icle instanceof %ar 1

Care determina 2aptul ca obiectul re2erențiat prin variabila m)'e(icle este de 2aptunul din clasa %ar.

•  m)%ar + m)'e(icle

•  m)%ar + -%arm)'e(icle * spui calculatorului ca m)'e(icle este cusi1uranța un obiect din clasa %ar  

44Car5m8Ve6icle5.number o2 'oors

S8stem.out.println 4=Ve6icle 'ata7>5;

S8stem.out.println 4=e1istration number7 > ?m8Ve6icle.re1istration+umber5;

!2 4m8Ve6icle instance o2 Car5

S8stem.out.println 4=&8pe o2 ve6icle7 Car>5;

Car c;

c 9 4Car5m8Ve6icle;

S8stem.out.println 4=+r. o2 doors7 > ? c.numbero2'oors.5

@

ClassCastException - atunci cand re2erirea se 2ace la un obiect din altaclasa 4explicatie aproximativa5

 &6ro:n to indicate t6at t6e code 6as attempted to cast an ob0ect to asubclass o2 :6ic6 it is not an instance.

7/23/2019 O Clasa Reprezintă Un Set de Obiecte Ce Au Aceeași Structura Si Comportament

http://slidepdf.com/reader/full/o-clasa-reprezinta-un-set-de-obiecte-ce-au-aceeai-structura-si-comportament 3/5

!ts reall8 prett8 simple7 i2 8ou are tr8in1 to t8pecast an ob0ect o2 class Ainto an ob0ect o2 class ", and t6e8 arent compatible, 8ou 1et a class castexception.

#ets t6inB o2 a collection o2 classes.

class A ...@

class " extends A ...@

class C extends A ...@

 Dou can cast an8 o2 t6ese t6in1s to Ob0ect, because all Eava classes in6erit2rom Ob0ect.

 Dou can cast eit6er " or C to A, because t6e8re bot6 FBinds o2F A

 Dou can cast a re2erence to an A ob0ect to " onl8 i2 t6e real ob0ect is a ".

 Dou cant cast a " to a C even t6ou16 t6e8re bot6 As.

(ol8morp6ism

• ectan1le

Oval• oundect

Superclass7 S6ape < represent instance variables4color, position, size5 andinstance variables 42or c6an1in1 color position, size5.

Class S6ape

Color color; 4culoarea 2ormei, clasa Color este defnita in pac6etul 0ava.a:t5

void setColor4Color ne:Color5

color 9 ne: Color; 3 sc6imba valoarea variabilei de instantaredra:45; 3 redeseneaza 2orma, pt a aparea in culoarea

sc6imbata@

void redra:45

// met6od 2or dra:in1 s6ape// more instance variables and met6ods@

@

7/23/2019 O Clasa Reprezintă Un Set de Obiecte Ce Au Aceeași Structura Si Comportament

http://slidepdf.com/reader/full/o-clasa-reprezinta-un-set-de-obiecte-ce-au-aceeai-structura-si-comportament 4/5

Class ectan1le extends S6ape

void redra: 45 // 3 commands 2or dra:in1 a rectan1le@// alte metode si variabile@

Class Oval extends S6ape

void redra: 45   // 3 commands 2or dra:in1 an oval

@@

'aca one2(ape este o variabila de tip S6ape aceasta poate 2ace re2erireinclusiv la un obiect de tipul ectan1le, Oval sau oundect.

• oneS6ape.redra:

valoarea variabilei se modifca de fecare data cand pro1ram esteexecutat , putandu3sse re2erici inclusiv la obiecte de tipuri di2erite inacelasi timp.

'e fecare data c*nd metoda redra este apelata pentru un tip de obiecteste apelata metoda corespunzătoare obiectului respectiv.

O metoda este polimorfcă daca acțiunea e2ectuata de către aceastadepinde de tipul actual de obiect pentru care metoda este aplicata.

'aca valoarea variabilei se modifcă pe măsura ce pro1ramul este executateste 2oarte posibil ca expresia 3one2(ape.redra-4 , sa apeleze metodedi2erite si sa deseneze 2orme di2erite de fecare data c*nd este executata.3G %etoda redra:45 este POLIMORFICA.

Polimorsmul 5nseamn6 ca diferitele obiecte pot r6spunde la acela7imesa# in moduri diferite.

&eveled8ect  apartine clasei 2(ape.Si are propria metoda redra:45.

Asadar codul scris anterior, precum si expresia oneS6ape.redra:45; poateacum sa deseneze rectan1les dupa noua 2orma dorita, c6iar daca aceastaclasa nu exista la momentul in care aceasta expresie a 2ost scrisa.

!n aceasta expresie, mesa0ul Hredra:> este transmis obiectului HoneS6ape> 

 Eava poate f 2olosita pentru a scrie pro1rame I-! pornind de la applet3urice ruleaza pe pa1ini :eb si pana la aplicatii stand3alone.

(ro1ramele I-! sunt driven-event. Acest lucru inseamna ca in momentulin care user3ul apasa pe butoane pro1ramul trebuie sa raspunda la acesteevenimente pe masura ce acestea apar.

$venimentele sunt obiecte. Culorile si 2onturile sunt obiecte.

7/23/2019 O Clasa Reprezintă Un Set de Obiecte Ce Au Aceeași Structura Si Comportament

http://slidepdf.com/reader/full/o-clasa-reprezinta-un-set-de-obiecte-ce-au-aceeai-structura-si-comportament 5/5

Componente I-! cum ar f butoane sau meniuri sunt obiecte.$venimentele sunt mana1eriate de care metode de instanta, continute inobiecte.

-n (ro1ram I-! are o subrutine main45, care in 1eneral creeaza mai multecomponente I-! si le afseaza pe ecran.O data ce componentele I-! au 2ost create, ele urmaresc pro1ramarea lor,pro1ramare ce le spune cum sa se deseneze pe sine pe ecran si cum saraspunda la evenimente cum ar f un clicB din partea user3ului.

 EOption(ane.s6o:%essa1e'ialo1 4 null, =Jello Korld> 5;

s6o:%essa1e'ialo1 < static met6od inclusa in clasa EOption(ane

codul sursa importa clasa 0avax.s:in1.EOption(ane pentru a 2ace posibilare2erirea la clasa EOption(ane utilizand in mod simplu numele ei.

iecare component al inter2etei este reprezentat de catre un obiect in

pro1ram.-n tip 2undamental de component este 2ereastra.4:indo:5.Acestea au mai multe tipuri de comportament7 se pot desc6ide, inc6ide,minimiza, maximiza, dar cel mai important pot contine alte componenteI-! cum ar f butoanele sau meniurile.

Clasa Erame este 2olosita cel mai de pt reprezentarea 2erestrelor, aceastafind inclusa in pac6etul 0avax.s:in1.