Curso: Programación Orientada a Objetos
Las Interfaces son aquellas visualizaciones graficas de nuestro proyecto, es todo aquello que el Usuario observa. Como su palabra dice es un intermedio o interconexión entre la persona que va a ver la aplicación y entre nuestro código. En lecciones anteriores hemos estado utilizando la librería java.util.Scanner que nos permitía almacenar datos que el Usuario proporcionaba, en este caso ahora vamos a aprender a utilizar objetos y métodos y mandarlos a pantalla sin necesidad de usar esta librería.
Antes de comenzar a crear nuestras interfaces es necesario conocer el concepto de Clases Abstractas.
Una Clase Abstracta es una clase igual a la que hemos estado creando, donde esta posee atributos y métodos solo que esta va de la mano con las Interfaces. Una Clase Abstracta no puede ser instanciada (no puede crear objetos) y solo puede heredarse.
Para crear una Clase Abstracta nos dirigimos a nuestro Package y creamos una nueva Clase, en mi caso la llamare Vendedor.
Para hacer esta Clase normal una Clase Abstracta solo basta con teclear la palabra “abstract” después de nuestro modificador de acceso, en este caso quedaría asi: “public abstract class Vendedor { } “ y le agregamos algunos atributos con un modificador de acceso para protegerlos y que solo sean utilizados por la clases hijas, para ello le colocamos el modificador de acceso llamado protected.
Así como la Clase es Abstracta, sus métodos igualmente serán abstractos y para ello igual como en el caso anterior, le asignamos la palabra “abstract” después del modificador de acceso, el cual usaremos el mismo que los atributos (protected). En este caso a la hora de crear algunos métodos que tendrán las Clases Hijas quedaría así.
Y antes de empezar a crear Interfaces es necesario que aprendas la diferencia de Clases Abstractas e Interfaces, las Clases Abstractas van mas con la pregunta ¿Qué es?, mientras que las Interfaces van con la pregunta ¿Qué hace?, es decir, para poder visualizar eso que se programo en las Clases Abstractas.
Para crear una Interfaz en Visual Studio Code, primero tenemos que crear una Clase normal, en mi caso la llamare IGalletas, le coloco la “i” mayúscula al inicio para identificarlo como interfaz, igualmente es solo una sugerencia. Luego tenemos que cambiar la palabra “class” por la palabra “interface” y ya tendríamos nuestra primera interfaz.
Dentro de esta interfaz vamos a crear nuevos métodos que las demás Clases no van a tener, en este caso solo un método que solo tenga la interfaz IGalletas, como venderGalletas.
Y vamos hacer lo mismo, pero ahora en otra Interfaz, así que vamos a seguir el mismo proceso, creamos una clase, cambiamos “class” por “interface” y le asignamos un método. En este caso llamare a mi Interfaz ICasas, ya que será un vendedor de Casas.
Ahora que tenemos Clases Abstractas e Interfaces es momento de crear nuestras Clases que representaran un objeto en nuestra Interfaz Gráfica. Así que vamos a crear Clases que deriven de la Clase Vendedor en este caso. Crearemos 2 Clases, una llamada DeJengibre y otra llamada DeLujo.
Cuando las tengamos creadas es necesario enlazarlas a nuestra Clase Padre, ya que heredaran sus atributos y métodos a su Clase. Para ello seguimos el procedimiento de lecciones anteriores colocando la palabra “extends” después del nombre de la Clase y enseguida colocaremos el nombre de la Clase Padre, es decir, de la que heredará sus atributos y métodos.
Como podrán ver nos arroja un error en el nombre de la Clase, para solucionarlo solo basta con pasar el mouse por encima del nombre de la Clase y darle a la opción Quick Fix.
Después le tendrán que dar a la única opción que les aparece ahí y ya tendrían resuelto el problema, este problema se debe a que como es abstracta la Clase Padre necesitamos abstraer sus métodos.
Y esto hacemos con la otra Clase llamada DeLujo. En mi caso voy a borrar los comentarios que nos genera el Quick Fix para que se vea mejor, claramente esto es una sugerencia, si a ustedes no les molesta déjenlo así.
Ahora que tenemos los métodos en nuestras Clases DeJengibre y DeLujo toca asignarles valores a sus métodos. Para ello colocamos un System.out.println(“”); indicando lo que hace cada Método en su respectiva Clase.
Ahora toca enlazarlo a nuestras interfaces, para ello nos ubicamos en nuestras Clases DeLujo y DeJengibre y después del “extends Vendedor” colocamos la palabra “implements” que nos permite a implementar la interfaz en nuestra Clase, y enseguida el nombre de nuestra Interfaz correspondiente. Recuerden que tenemos 2 interfaces, IGalletas y la otra ICasas, las implementaremos a su correspondiente Clase, por ejemplo, la interfaz IGalletas la implementaremos en nuestra Clase llamada DeJengibre y la interfaz ICasas en nuestra clase DeLujo. Así quedaría ya implementadas.
Vemos que al implementar la Interfaz IGalletas a nuestra Clase DeJengibre nos arroja un error como el que vimos anteriormente, así que realizamos el mismo procedimiento para solucionarlo.
Y se nos añadirá el método de la Interfaz IGalletas en nuestra Clase, lo mismo hacemos con la otra Clase llamada DeLujo.
Enseguida nos toca asignar un valor a ese método recién añadido, usando lo mismo con los anteriores métodos con un System.out.println(“”); que contenga texto relacionado a su Clase. Hacemos lo mismo con ambas clases.
Ahora que tenemos ya creado métodos, atributos en una Clase falta algo importante que son los Constructores, que anteriormente vimos como crearlos, en este caso tenemos que crear un Constructor Vacío (sin atributos) en nuestras Clases DeJengibre y DeLujo. Siempre tiene que estar creado ya sea vacío o con atributos.
Ahora que tenemos creado ambos constructores vacíos es hora de dirigirnos a la Clase Principal Main y crear un objeto del tipo de la Clase DeJengibre y otro objeto de la Clase DeLujo.
Por ultimo vamos a darle funciones en el Main a estos objetos, colocamos primero el nombre del objeto y enseguida un punto, después del punto tendrán que colocar todos sus métodos, método presentar(), venderGalletas(), etc. Lo hacemos con ambos objetos.
¡Listo! Solo quedaría ejecutar el programa en el botón de la esquina superior derecha y nos mostraría los métodos que programamos.
Listo, se ejecuto correctamente el programa mostrándonos lo que contenía cada método. Esta fue la última lección, en este pequeño curso vimos lo básico y más importante de la Programación Orientada a Objetos en Java, espero y este curso te haya servido de algo, no olvides que la práctica hace al maestro, estamos para sumar no para restar.
Para terminar este curso necesitas contestar el siguiente test que contendrá preguntas acerca de lo que vimos en este curso. ¡Suerte y enhorabuena!