Este documento describe las interfaces en Java. Una interfaz especifica los métodos abstractos y propiedades que una clase debe implementar pero no su implementación. Las interfaces organizan la programación y obligan a ciertas clases a utilizar los mismos métodos. Una interfaz se declara con la palabra reservada "interface" y las clases que la implementan usan la palabra "implements".
PLAN DE TRABAJO CONCURSO NACIONAL CREA Y EMPRENDE.docx
Interfaz java y c#
1. UNI VERSI DAD REGI ONAL AUTÓNOMA DE LOS
ANDES‘‘ UNI ANDES’’
TEMA DEL DOCUMENTO:
I NTERFAZ ENJ AVA
ESTUDI ANTE: J ONATHANISRAEL SALGUERO FLORES.
DOCENTE: BERNABÉ ORTEGA
2015
Puyo- Pastaza
2. I NTERFAZ ENJ AVA
Una i nterfaz en j ava es un conj unto de mét odos abstractos y propi edades. En ell as se
especifica qué se debe hacer pero no su i mpl e mentaci ón. Serán l as cl ases que
i mpl e menten estasi nterfacesl as que descri banl a lógica del comporta mi ento de t odos l os
mét odos del ai nterfaz. Un aspectof unda mental del asi nterfaces enJ ava es hacerl o que ya
he mos di cho que hace una i nterfaz de f or ma genérica: separar l a especificaci ón de una
cl ase (qué hace) de l a impl e mentaci ón (cómo l o hace). Esto se ha comprobado que da
lugar a progra mas más robustos y con menos errores.
Ventaj as al utilizar interfaces:
1. Se organiza la progra mación.
2. En J ava, l as i nterfaces se decl aran con l a pal abra reservada i nterface de manera
si mil ar a como se decl aran las clases abstractas.
3. Enl a decl araci ón n de unai nterfaz, l o único que puede aparecer son decl araciones
de mét odos (su no mbre y si gnatura, si n su i mpl ementaci ón n) y defi nici ones de
constantes si mbólicas.
4. Una i nterfaz no encapsula datos, só l o defi ne cuáles sonl os mét odos que han de
i mpl e mentar los obj etos de aquellas clases que i mple mentenlainterfaz.
5. Obligar a que ciertas clases utilicenl os mis mos métodos (nombres y pará metros).
6. Establ ecer relaci ones entre clases que no estén rel aci onadas.
Có mo usarl as?
Java utiliza dos pal abras reservadas para trabaj ar con i nterfaces que son i nterface e
i mpl e ments.
La si ntaxis para decl arar una i nterfaz es la sigui ente:
[public] interface nombreI nterfaz [extends listaSuperI nterfaces]
Unai nterfaz puede extender de otrasi nterfaces con el obj etivo de añadir más mét odos al a
mi s ma o sucl asificarla, para ell ose usarál a pal abra reservada "extends" seguida del alista
de i nterfaces de las cual es se qui era extender.
Las cl ases que qui eran usar l a i nterfaz tendrán que usar l a pal abra reservada
"i mpl e ments" y especificar el códi go de l os métodos que están defi ni dos enlainterfaz:
//Descri pci ón: Ejempl o de i nterfaz
//Autor: Dani el Leyva Cortés
//Contacto: transistor47@hot mail. com
i mport java.io. *;
Que es lainterfaz de una clase?
En teoría de ori entaci ón a obj etos, l ai nterfaz de una cl ase es todol o que pode mos hacer
con ella. Aef ectos prácticos: todos l os mét odos, propi edades y variabl es públicas (aunque
no deberían haber nunca variabl es públicas, debe mos usar propi edades en sul ugar) de l a
cl ase conf or man sui nterfaz.
Cuando usar interfaces?
3. En general si empre quetengas, o preveas que puedes tener más de una cl ase para hacerl o
mi s mo: usa i nterfaces. Es mej or pecar de exceso que de def ecto en este caso. No te
preocupes por penalizaciones de rendi mi ento entu aplicaci ón porque nolas hay.´
No di go que t oda cl ase deba i mpl e mentar una i nterfaz obligatoriamente, muchas cl ases
internas no l o i mpl e mentarán, pero en el caso de l as cl ases públicas (visibles desde el
exteri or) deberías pensarlo bi en. Ade más pensar enl ai nterfaz antes que enl a cl ase en sí,
es pensar enl o que debe hacerse enl ugar de pensar encomo debe hacerse. Usari nterfaces
per mite a posteri ori ca mbiar una cl ase por otra quei mpl e mentel a mi s ma i nterfaz y poder
integrar l a nueva cl ase de f or ma mucho más fácil (sól o debe mos modificar donde
instanci amos l os obj etos pero el resto de códi go queda igual).
Para defi nir una i nterfaz en C# tene mos que usar l a i nstrucci ón i nterface segui da del
no mbre y encerrado entre un par de llaves los mi embros que defi ne:
public interface I Ani mal
{
//...
}
Tal como comenta mos en el apartado de l a accesibilidad, l os mi e mbros de una i nterfaz
siempre son públicos, pero no debe mos i ndicarl o, ya que se sobreentiende que es así y el
compilador produciría un error i ndicándonos que el modificador de accesi bili dad no se
puede aplicar a ese ti po de elementos.
Co mol os mi e mbros del asi nterfaces no contienen códi go ej ecutabl e, sol o debe mos defi nir
la "fir ma" del mét odo, propi edad o evento que quere mos defi nir. En el caso de l as
propi edades, tendre mos que i ndicar l os bl oques get y/o set que l a cl ase o ti po que l a
i mpl e mente debe defi nir.
public interface I Ani mal
{
voi d Despl azar();
voi d Ali mentarse();
stri ng Especi e { get; set;}
int Edad { get;}
}
Segúnl asi ndicaci ones de no mencl atura de. NET Fra me work, se recomi enda que t odas l as
interfaces e mpi ecen con una I mayúscul a segui da del nombre al que hacer referenci a l a
interfaz.
¿Qué puede contener una interfaz?
Tal como he mos visto anteri or mente, una i nterfaz pude contener cualqui era de l os
mi e mbros que una cl ase puede contener, sal vo los ca mpos; por tanto, tambi én puede
contener eventos, pero debi do a cómo sontratadosl os eventos en C#, l os cual es vere mos
con más detalleenl al ección 4 de este pri mer módulo, yl a dependenci aconl os del egados,
4. para poder defi nir un evento en una i nterfaz, antes debe mos defi nir el delegado que se
usará con ese evento.
En el si gui ente ej e mpl o tene mos una i nterfaz que defi ne todos 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 mentar tanto el
bl oque get como el set y en el otro, que devuel ve un val or del mi s mo ti po que l ai nterfaz,
sol o defi ne el bl oque get:
// Decl araci ón del del egado para el evento de lainterfaz
public del egate voi d DatosCa mbi adosEvent Handl er();
public interface IPrueba
{voi d Mostrar();
stri ng Sal udo(stri ng nombre);
stri ng Nombre { get; set;}
int Edad { get;}
stri ng this[i nt index] { get; set;}
IPrueba this[stri ng i ndex] { get;}
event DatosCa mbi adosEvent Handl er DatosCa mbiados;}
Una i nterfaz es un contrato
Si empre que l ee mos sobrel as i nterfaces, l o pri mero conl o que nos sol emos encontrar es
que una i nterfaz es un contrato. Vea mos que nos qui eren decir con esa frase. Tal como
acaba mos de ver, l as i nterfaces sol o defi nen l os mi e mbros, pero no el códi go a usar en
cada uno de ell os, esto es así precisa mente porque el papel quej ueganl asinterfaces es el
de sol o i ndicar que es l o que una cl ase o estructura puede, o mej or di cho, debe
i mpl e mentar.
Si en una cl asei ndica mos que quere mos "i mpl e mentar" unai nterfaz, esa cl ase debe defi nir
cada uno del os mi e mbros quel ai nterfaz expone. De estaf or ma nos asegura mos de que si
una cl asei mpl e menta unai nterfaz, ta mbi éni mpl ementa todos l os mi e mbros defi ni dos en
di chai nterfaz. Cuando una cl asei mpl e menta unai nterfaz estáfir mando un contratocon el
que se compromete a definir todos l os mi e mbros que l a cl ase defi ne, de hecho el propi o
compilador nos obliga a hacerl o.
Ref erenci as Bi bliográficas:
1. "Java como progra mar". Deitel y Deitel. 5º edici ón, Person Educati on 2004
2. "Progra maci ón enJava", Mora Rodrí guez, Frank. Año: 2006
3. "Introducci ón a Java". Chojri n, Mauro. Año 2006
4. Gui ones de Cl ases. Inga. MSc. Patricia Haydeè Estrada de López. Progra maci ón III
Cicl oII/2006. Falcultad de Ingeni ería y Arquitectura. Uni versi dad de El Sal vador
5. "Aprenda Java como si estuvi era en Pri mero". García de J al ón, Javi er. Rodríguez,
José Ignaci o. y otros. Escuel a Superi or de I ngeni eros I ndustriales. Uni versi dad de
Navarra. Marzo, 1999