Foros del Web » Programación para mayores de 30 ;) » Java »

Interfaces

Estas en el tema de Interfaces en el foro de Java en Foros del Web. Hola a todos, actualmente estoy estudiando java en la universidad y llegamos al tema de Interfaces. He hecho un programa en donde implemeto herencia e ...
  #1 (permalink)  
Antiguo 08/11/2007, 08:27
Avatar de luisec77  
Fecha de Ingreso: mayo-2003
Mensajes: 54
Antigüedad: 21 años
Puntos: 0
Interfaces

Hola a todos, actualmente estoy estudiando java en la universidad y llegamos al tema de Interfaces.

He hecho un programa en donde implemeto herencia e interfaces, mi pregunta es la siguiente:

¿Para que me sirve o cual es la utilidad de una interface, ya no debe tener variables solamente constantes y los metodos abstractos utilizados en las clases que la implementan no pueden ser instanceados?

no se si este sea el apartado correcto para mi pregunta pero espero sus respuestas, de ante mano gracias
  #2 (permalink)  
Antiguo 08/11/2007, 08:47
 
Fecha de Ingreso: septiembre-2007
Mensajes: 173
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Interfaces

La interfaz te proporciona el esqueleto de la clase que quieres construir. O sea:
imagina la interfaz coche, la clase coche. Ahí defines numero de ruedas, volante si o no, etc...
Luego, tienes la clase Mercedes, que implementa coche. O sea: La clase Mercedes tiene que tener todos los métodos de coche, y, aparte, métodos o atributos como marca, modelo, color....-

La interfaz te ha proporcionado el esqueleto de la clase coche, para luego poder trabajar con ella de forma eficaz.
  #3 (permalink)  
Antiguo 12/11/2007, 18:57
Avatar de luisec77  
Fecha de Ingreso: mayo-2003
Mensajes: 54
Antigüedad: 21 años
Puntos: 0
Re: Interfaces

Bueno en esa parte si la tengo claro, solamente que no entiendo su uso practico, ya que seria igual si pongo la palabra reservada implements o no la pongo; sabras de un ejercicio ilustrativo... los que he encontrado son donde la interface tiene como metodos abstractos play(), stop(), pause() y son usados por otras clases, y no me queda muy claro su uso.

Gracias por la respuesta, tambien perdon por la tardia contestacion... se estan volviendo algo pesadas las materias.... saludos.
  #4 (permalink)  
Antiguo 13/11/2007, 01:38
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Interfaces

La idea de una Interfaz es básicamente una "declaración de intenciones" o un "contrato" por la que las clases que lo implementan "se comprometen" a tener una serie de métodos.
¿Y para que sirve? Para poder manipular clases sin saber exactamente que clase estamos tratando, usando unicamente los métodos que sabemos seguro que tendrá por que se ha "comprometido" a tenerlos (implementando una interfaz).

Un ejemplo real es usar algo tan simple como un Map en Java. Cuando manipulamos objetos de "la clase Map" en realidad no sabemos de que clase son (suponiendo que no lo hayamos creado nosotros, claro ), ya que Map es una interfaz y debajo podría haber cualquier cosa, con tal de que tenga los metodos que Map requiere. Puede ser un HashMap, un TreeMap, una Hastable... pero a nosotros nos da igual mientras se comporte como Map y nuestro programa funcionará igual se trate de una clase de Map u otra.

En definitiva, nos indica como podremos interactuar con un grupo de clases (las que implementen la interfaz) sin tener que saber exactamente que clases son ni como están implementadas. Lo cual es muy muy útil y se usa más de lo que mucha gente cree, pero no se da cuenta.

S!

PD: En tu caso quiza no lo veas claro por que trabajas con solo una clase y entonces una interfaz no tiene mucha utilidad. Pero si tuvieras varias clases con esos metodos y tu programa tuviera que funcionar igual con todas ellas, sería otra cosa.
  #5 (permalink)  
Antiguo 13/11/2007, 14:56
Avatar de luisec77  
Fecha de Ingreso: mayo-2003
Mensajes: 54
Antigüedad: 21 años
Puntos: 0
Re: Interfaces

Gracias, ya tengo una idea clara de lo que son y su uso, lo unico que me falta es seguir experimentando y dandole los usos que me conmentas GreenEyed y es cierto por ahora no le veo mucha utilidad a las interfaces porque solo las he implementado a una clase pero conforme avance ire viendo su utilidad real.

Les agradezco su apoyo GreenEyed y Ethiel, y saludos...
  #6 (permalink)  
Antiguo 15/11/2007, 13:07
 
Fecha de Ingreso: marzo-2006
Mensajes: 178
Antigüedad: 18 años, 1 mes
Puntos: 1
Re: Interfaces

Yo tampoco le encuentro mucha utilidad a las interfaces, por lo menos las que crea uno.
Cuando creo una interface le pongo metodos que lo que hacen es.....nada.

Mejor estos mismos metodos los creo en la clase que voy a usar y le doy una funcionalidad a estos metodos.

Java trae interfaces predefinidas, un ejemplo, ActionListener, esta interfaz efectivamente si hace algo, ya que cuando, por ejemplo, apreto un boton se activa el metodo actionPerformed.

Ahora si yo creo una interface, por mucho que quiera, si apreto un boton no creo que se active el metodo de dicha interfaz que yo cree.

Por eso creo que solo sirven las interfaces que vienen incluidas con java, ya que las hace un programador cualquiera son solo metodos que no hacen nada, y mas encima cuando uno implementa una interfaz debe declarar todos los metodos de esta, aunque no los use todos......una lata.

Por lo menos esa es mi vision, no soy un programador experto.
  #7 (permalink)  
Antiguo 16/11/2007, 13:00
 
Fecha de Ingreso: septiembre-2007
Mensajes: 173
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Interfaces

Sin las interfaces no hay contrato. Imagina que cada programador de JAVA utilizara las interfaces a su gusto: un caos completo.

Si tu haces un programa, y quieres que en un futuro se pueda mantener, extender o mejorar, los contratos de las interfaces son una buena vía para entender lo que hace, sobre todo si en el futuro la persona que los mantiene no eres tú.

Parece una forma tonta de perder clientes, pero no es así en absoluto, se gana en confianza y seguridad con la empresa en cuestión.
  #8 (permalink)  
Antiguo 18/11/2007, 15:09
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Interfaces

Cita:
Iniciado por supertaldo Ver Mensaje
Por eso creo que solo sirven las interfaces que vienen incluidas con java, ya que las hace un programador cualquiera son solo metodos que no hacen nada, y mas encima cuando uno implementa una interfaz debe declarar todos los metodos de esta, aunque no los use todos......una lata.

Por lo menos esa es mi vision, no soy un programador experto.
Pues con la experiencia, te darás cuenta de que no es así .

S!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:06.