JavaRush /Blog Java /Random-ES /Interfaz en Java
vinsler
Nivel 35

Interfaz en Java

Publicado en el grupo Random-ES
Soy un mal narrador si no tengo el objetivo de explicar algo incomprensible a alguien con una solicitud específica, entonces entiendo las cosas simples y, para empezar, escribiré sobre ello aquí. No sigo el ejemplo de enseñanza de JavaRush de primero hacer una pregunta y luego decirte cómo hacerlo. Soy partidario de contar primero y luego preguntar, así como de contar, mostrar primero y luego explicar.
Interfaz en Java - 1
BS: Acciones == comportamiento, tómelos como sinónimos, las acciones simplemente se entienden más correctamente, siempre es algo activo y el comportamiento puede no mostrar nada.

interfaz - interfaz

¿Qué es esto? Listado de interfaz de ejemplo (con genéricos):
public interface Store<T, ID> {
    void add(T t);
    void update(T t, ID i);
    void delete(ID i);
    T findOne(ID i);
    List<T> findAll();
}
Interfaz cruda común (de CRUD: Crear, Leer, Actualizar, Eliminar). No te alarmes, todo es bastante sencillo. Esta interfaz significa que trabajar con muchas bases de datos se basa en el siguiente principio: debe agregar un registro, actualizar un registro, eliminar y buscar todos los registros. Verás esto 100 veces más y escribirás casi la misma interfaz la misma cantidad de veces. Se designa público porque debe ser implementado por la clase. ¿ Qué significa ser implementado por una clase ? Todo es muy sencillo: debe describir todos los métodos de la interfaz. El ejemplo más simple de implementación en una clase:
void add (T t) {
	bookstore.add(t);
}
En lugar de T t, se sustituirá por un determinado genérico. En pocas palabras, este es el TIPO de una variable, por lo que a menudo se denota como T = Tipo. En nuestro ejemplo, digamos que podría ser así:
void add (Book book) {
	bookstore.add(book);
}
Naturalmente, en lugar de Libro libro puedes sustituir cualquier variable que necesites para tu implementación. Para entenderlo, puedes imaginar teóricamente que T = Objeto, y dado que en Java todo es Objeto, también puedes definir cualquiera de tus clases/variables allí. El único problema surgirá más adelante: excepciones si la clase es cero, etc. En sus propias palabras, es una determinada estructura de programa que define las relaciones entre objetos dividiéndolos en determinadas partes de comportamiento. El propósito de una interfaz es definir la funcionalidad para su implementación por parte de una clase. Es decir, una descripción de las firmas de los métodos. Dentro de la interfaz hay nombres de métodos que devuelven e ingresan valores, y eso es todo. Bueno, todavía puedes designar algunas variables allí, pero inmediatamente se vuelven implícitamente públicas estáticas finales y se puede acceder a ellas desde cualquier parte del programa. La interfaz describe acciones y, por lo tanto, estas mismas acciones están contenidas en ella, es decir. funciones o métodos. ¿Por qué es esto necesario? ¿Qué simplifica esto o qué ventajas aporta? Simplificar la descripción de acciones y comportamientos. Decimos qué hacer, pero cada clase implementa cómo hacerlo por sí misma. Ahorre tiempo en proyectos grandes. Las interfaces se crean en situaciones en las que sabemos que necesitamos realizar alguna tarea, pero la forma de hacerlo puede variar. La interfaz describe los nombres de las acciones; esto es simplemente la dirección de alguna abstracción. Aunque también pueden existir interfaces sin métodos y campos, como marcadores como Cloneable, Remote, etc. Tomemos el ejemplo de automóvil favorito de todos. La interfaz que contiene describirá las posibles acciones del automóvil, giro del volante o dirección de movimiento, ganancia de velocidad, gasolina restante, etc. Es decir, las mismas acciones que puede tener absolutamente cualquier coche. En otras palabras, descendemos a la jungla de la degradación hasta el nivel más bajo de creación del primer automóvil y con nuestro propio cerebro averiguamos cómo se creó y qué tenía. Naturalmente, lo describimos en abstracto y sólo para acciones. ¿Qué tenía el primer coche? ¿Había un volante? Era, lo que significa que estaba girando en alguna parte, la dirección del volante/movimiento. ¿Había ruedas? Sí, eso significa que conducía a cierta velocidad, un cambio de velocidad. Esa es toda la interfaz. Pero, en general, las interfaces se crean para alguna implementación de determinadas acciones. Aquellos. Escribimos un programa para unos más específicos que para cualquier otra cosa que se te ocurra. Por lo tanto, las propias interfaces contendrán métodos más claros y específicos. Por supuesto serán lo más abstractos posible. Las interfaces se pueden heredar entre sí como clases.
interface MyInterface extends NotMyinterface;
Las interfaces se implementan en clases. Puede implementar tantas interfaces como desee. A diferencia de la herencia, hereda de uno solo.
class NewClass extends OldClass implements MyInterface, NotMyinterface;
Aquellos. Se nos ocurrieron algunas acciones, les dimos nombres, ingresamos datos, devolvimos datos, escribimos todo esto en la interfaz, luego creamos una clase y agregamos nuestra interfaz a esta clase, es decir. Implementamos nuestra interfaz en esta clase. Además, todos los métodos/funciones descritos en la interfaz deben tener una implementación. Se puede hacer directamente en la interfaz agregando la palabra default antes del método y escribiendo la implementación directamente en el método, como una clase. Esto fue posible con la versión 8 de Java. También se puede hacer en una clase que implementará esta interfaz. Bueno, escribimos la interfaz, la implementamos en la clase, implementamos la implementación en la clase, podemos ejecutarla y probarla. También puedes leer en las interfaces sobre:
  • Métodos estáticos.
  • Métodos privados. (repetición del código)
  • Variables/Constantes.
  • Interfaces anidadas.
Pero es mejor hacerlo más tarde y también es perjudicial llenarse la cabeza con demasiadas cosas. Interesante pregunta, ¿qué es un Volvo? ¿Clase o interfaz?
line1: Volvo v = new VolvoV2();
line2: Volvo v = new VolvoV3();
Además de las interfaces, vale la pena continuar con las Clases y Clases abstractas. Quizás más tarde, cuando tenga un par de horas más libres. ))) PD: Chicos, pido todas las críticas en la publicación o en PM, entiendo perfectamente que todos las tienen))) y siempre estoy interesado en escucharlas, porque esta es una razón para ser un poco mejor y De nuevo sigue avanzando. Dicho esto, muchas gracias a todos y buena suerte en la programación. )))
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION