Documente Academic
Documente Profesional
Documente Cultură
Clase interioare
Gheorghe Cosmin
Silaghi
Cluj-Napoca - 21 Noiembrie
2016
Inner classes
Se plaseaza clase in interiorul altor clase
Inner classes reprezinta un concept diferit de compozitie
De obicei, clasa exterioara are o metoda care returneaza un obiect din clasa
inner
Tipul obiectului din clasa interioara se specifica precum:
OuterClass.InnerClass
Obiectul clasei interioare are un link (referinta) catre obiectul clasei
exterioare care l-a creat!!!
Obiectul clasei interioare poate accesa membrii obiectului clasei exterioare
fara ca sa fie nevoie de calificare (dreptul de a accesa este asupra tuturor
obiectelor membre ale clasei exterioare)
Pentru a se obtine referinta la obiectul clasei exterioare (din obiectul clasei
inner) se utilizeaza: OuterType.this
Pentru a crea un obiect din clasa inner pornind de la un obiect din clasa
outer se poate utiliza: obiectOuter.new
Clasele inner sunt potrivite pentru a implementa interfete: se realizeaza
ascunderea implementarii
Cluj-Napoca - 21 Noiembrie
2016
Cluj-Napoca - 21 Noiembrie
2016
De ce clase inner?
Fiecare clasa inner poate in mod independent sa mosteneasca
de la o alta implementare. Deci o clasa inner nu este limitata de
faptul ca clasa exterioara mosteneste sau nu din implementare
Clasa interioara poate avea instante multiple, fiecare cu propria
stare, care este independenta de starea obiectului din clasa
exterioara
O singura clasa exterioara poate avea mai multe clase interioare
fiecare implementand aceasi interfata sau mostenind din aceasi
clasa in mai multe feluri
La momentul creerii obiectului din clasa inner, acesta nu este
legat de creerea obiectului din clasa outer
Inner class este o clasa total diferita de clasa exterioara, nu
exista confuzie de tipul is-a
Cluj-Napoca - 21 Noiembrie
2016
Control frameworks
Application framework: un set de clase proiectate sa rezolve
un tip anume de problem (design patternul Template Method)
Pentru aplicarea application framework se mostenesc din
clasele de baza si se schimba implementarea prin overriding
Codul suprascris este cel care customizeaza solutia la cazul
particular
Template Method: contine structura de baza a algoritmului, iar
partile specifice sunt apeluri la metode care pot fi override
Astfel, se separa partile neschimbate ale algoritmului de cele
flexibile
Control framework: un tip particular de application framework
prin care sistemul raspunde la evenimentele generate (sistem
event-driven) de exemplu GUIs
In implementarea Control framework, inner class sunt utilizate
pentru a exprima diversele actiuni (metoda action)
Cluj-Napoca - 21 Noiembrie
2016
Cluj-Napoca - 21 Noiembrie
2016