4
UNI VERSI DAD REGI ONAL AUTÓNO MA DE LOS ANDES ‘ ‘ UNI ANDES’ ’ TE MA DEL DOCUME NTO: I NTERFAZ EN J AVA ESTUDI ANTE: J ONATHAN I SRAEL SALGUERO FLORES. DOCENTE: BERNABÉ ORTEGA 2015 Puyo- Past aza

Interfaz java y c#

Embed Size (px)

Citation preview

Page 1: Interfaz java y c#

UNI VERSI DAD REGI ONAL AUTÓNOMA DE LOS

ANDES ‘ ‘ UNI ANDES’ ’

TE MA DEL DOCUMENTO:

I NTERFAZ EN J AVA

ESTUDI ANTE: J ONATHAN I SRAEL SALGUERO FLORES.

DOCENTE: BERNABÉ ORTEGA

2015

Puyo- Past aza

Page 2: Interfaz java y c#

I NTERFAZ EN J AVA

Una i nt erf az en j ava es un conj unt o de mét odos abstract os y propi edades. En ell as se especifica qué se debe hacer pero no su i mpl e ment aci ón. Serán l as cl ases que i mpl e ment en estas i nterfaces l as que descri ban l a l ógi ca del co mport a mi ento de t odos l os mét odos de l a i nterf az. Un aspect o f unda ment al de l as i nterf aces en J ava es hacer l o que ya he mos di cho que hace una i nt erf az de f or ma genéri ca: separar l a especificaci ón de una cl ase ( qué hace) de l a i mpl e ment aci ón (có mo l o hace). Est o se ha co mprobado que da l ugar a progra mas más robust os y con menos errores.

Vent aj as al utilizar i nterf aces:

1. Se organi za l a progra maci ón. 2. En J ava, l as i nterf aces se decl aran con l a pal abra reservada i nterf ace de manera

si mil ar a como se decl aran l as cl ases abstractas. 3. En l a decl araci ón n de una i nterf az, l o úni co que puede aparecer son decl araci ones

de mét odos (su no mbre y si gnat ura, si n su i mpl eme nt aci ón n) y defi ni ci ones de constantes si mbóli cas.

4. Una i nterf az no encapsula dat os, só l o defi ne cuáles son l os mét odos que han de i mpl e ment ar l os obj et os de aquell as cl ases que i mpl e ment en l a i nterf az.

5. Obli gar a que ci ertas cl ases utilicen l os mi s mos métodos (no mbres y pará metros). 6. Est abl ecer rel aci ones entre cl ases que no estén rel aci onadas.

Có mo usarl as?

Java utiliza dos pal abras reservadas para trabaj ar con i nt erf aces que son i nt erf ace e i mpl e ments.

La si ntaxi s para decl arar una i nterf az es l a si gui ente:

[public] i nterf ace no mbreI nt erf az [ext ends listaSuperI nt erf aces]

Una i nt erf az puede ext ender de otras i nterf aces con el obj eti vo de añadi r más mét odos a l a mi s ma o su cl asificarl a, para ell o se usará l a pal abra reservada "extends" segui da de l a li sta de i nterf aces de l as cual es se qui era extender.

Las cl ases que qui eran usar l a i nterf az t endrán que usar l a pal abra reservada "i mpl e ments" y especificar el códi go de l os mét odos que están defi ni dos en l a i nterf az:

//Descri pci ón: Ej e mpl o de i nterf az

//Aut or: Dani el Leyva Cortés

//Cont act o: transi stor47@hot mail. com

i mport j ava. i o. *;

Que es l a i nterf az de una clase?

En t eorí a de ori entaci ón a obj et os, l a i nterf az de una cl ase es t odo l o que pode mos hacer con ell a. A ef ect os prácti cos: t odos l os mét odos, propi edades y vari abl es públi cas (aunque no deberí an haber nunca vari abl es públi cas, debe mos usar propi edades en su l ugar) de l a cl ase conf or man su i nterfaz.

Cuando usar i nterf aces?

Page 3: Interfaz java y c#

En general si e mpre que t engas, o preveas que puedes t ener más de una cl ase para hacer l o mi s mo: usa i nt erf aces. Es mej or pecar de exceso que de def ect o en este caso. No t e preocupes por penali zaciones de rendi mi ent o en tu aplicaci ón porque no l as hay. ´

No di go que t oda cl ase deba i mpl e ment ar una i nterf az obli gat ori a ment e, muc has cl ases i nternas no l o i mpl e mentarán, pero en el caso de l as cl ases públi cas (vi si bl es desde el exteri or) deberí as pensarl o bi en. Ade más pensar en l a i nterf az ant es que en l a cl ase en sí, es pensar en l o que debe hacerse en l ugar de pensar en co mo debe hacerse. Usar i nt erf aces per mi te a posteri ori ca mbiar una cl ase por otra que i mpl e ment e l a mi s ma i nterf az y poder i ntegrar l a nueva cl ase de f or ma mucho más fácil (sól o debe mos modifi car donde i nstanci a mos l os obj et os pero el rest o de códi go queda i gual).

Para defi ni r una i nt erf az en C# t ene mos que usar l a i nstrucci ón i nterf ace segui da del no mbre y encerrado entre un par de ll aves l os mi embr os que defi ne:

publi c i nterf ace I Ani mal

{

//...

}

Tal co mo co ment a mos en el apartado de l a accesi bili dad, l os mi e mbros de una i nt erf az si e mpre son públi cos, pero no debe mos i ndi carl o, ya que se sobreenti ende que es así y el co mpil ador produci rí a un error i ndi cándonos que el modificador de accesi bili dad no se puede apli car a ese ti po de el e ment os.

Co mo l os mi e mbros de l as i nterf aces no conti enen códi go ej ecutabl e, sol o debe mos defi ni r la "fir ma" del mét odo, propi edad o event o que quere mos defi ni r. En el caso de l as propi edades, tendre mos que i ndi car l os bl oques get y/o set que l a cl ase o ti po que l a i mpl e ment e debe defi nir.

publi c i nterf ace I Ani mal

{

voi d Despl azar();

voi d Ali ment arse();

stri ng Especi e { get; set;}

i nt Edad { get;}

}

Según l as i ndi caci ones de no mencl at ura de . NET Fra me work, se reco mi enda que t odas l as i nterf aces e mpi ecen con una I mayúscul a segui da del no mbre al que hacer ref erenci a l a i nterf az.

¿ Qué puede cont ener una i nterf az?

Tal co mo he mos vi sto ant eri or ment e, una i nt erf az pude cont ener cualqui era de l os mi e mbros que una cl ase puede cont ener, sal vo l os ca mpos; por t ant o, t ambi én puede cont ener event os, pero debi do a có mo son tratados l os event os en C#, l os cual es vere mos con más det all e en l a l ección 4 de este pri mer módul o, y l a dependenci a con l os del egados,

Page 4: Interfaz java y c#

para poder defi ni r un event o en una i nt erf az, antes debe mos defi ni r el delegado que se usará con ese event o.

En el si gui ent e ej e mpl o tene mos una i nt erf az que defi ne t odos l os ti pos de mi e mbros posi bl es, i ncl uso dos i ndizadores, en uno de l os cual es debe mos i mpl e ment ar t ant o el bl oque get co mo el set y en el otro, que devuel ve un val or del mi s mo ti po que l a i nterf az, sol o defi ne el bl oque get:

// Decl araci ón del del egado para el event o de l a i nterf az

publi c del egate voi d Dat osCa mbi adosEvent Handl er();

publi c i nterf ace I Prueba

{voi d Mostrar();

stri ng Sal udo(stri ng nombre);

stri ng No mbre { get; set;}

i nt Edad { get;}

stri ng thi s[i nt i ndex] { get; set;}

IPrueba t hi s[stri ng i ndex] { get;}

event Dat osCa mbi adosEvent Handl er Dat osCa mbiados; }

Una i nterf az es un contrato

Si e mpre que l ee mos sobre l as i nterf aces, l o pri mero con l o que nos sol e mos encontrar es que una i nterf az es un contrat o. Vea mos que nos qui eren deci r con esa f rase. Tal co mo acaba mos de ver, l as i nterf aces sol o defi nen l os mi e mbros, pero no el códi go a usar en cada uno de ell os, est o es así preci sa ment e porque el papel que j uegan l as i nt erf aces es el de sol o i ndi car que es l o que una cl ase o estruct ura puede, o mej or di cho, debe i mpl e ment ar.

Si en una cl ase i ndi ca mos que quere mos "i mpl e mentar" una i nt erf az, esa cl ase debe defi ni r cada uno de l os mi e mbros que l a i nterf az expone. De esta f or ma nos asegura mos de que si una cl ase i mpl e ment a una i nterf az, ta mbi én i mpl eme nt a t odos l os mi e mbr os defi ni dos en di cha i nterf az. Cuando una cl ase i mpl e ment a una i nterf az está fir mando un contrat o con el que se co mpro met e a def i nir t odos l os mi e mbros que l a cl ase defi ne, de hecho el propi o co mpil ador nos obli ga a hacerl o.

Ref erenci as Bi bli ográficas:

1. "J ava como progra mar". Deitel y Deitel. 5º edi ci ón, Person Educati on 2004 2. "Progra maci ón en Java", Mora Rodrí guez, Frank. Año: 2006 3. "I ntroducci ón a Java". Chojri n, Mauro. Año 2006

4. Gui ones de Cl ases. Inga. MSc. Patri ci a Haydeè Estrada de López. Progra maci ón III Ci cl o II/2006. Fal cultad de I ngeni erí a y Arquitect ura. Uni versi dad de El Sal vador

5. " Aprenda J ava co mo si est uvi era en Pri mero". Garcí a de J al ón, J avi er. Rodrí guez, J osé I gnaci o. y otros. Escuel a Superi or de I ngeni eros I ndustri al es. Uni versi dad de Navarra. Marzo, 1999