top of page

Herencias, Pauqtes e Interfaces

     Bienvenidos a la segunda clase del primer bloque de la programación orientada a objetos (POO), en esta clase vamos a ver las herencias, los paquetes e interfaces.

 

 

     Las herencias como su nombre indica son mecanismos que habilitan a una clase para heredar todos los comportamientos y atributos de otra clase, de este modo podemos crear una clase a partir de otra y de este modo tendemos ya creados todos los metodos y todos los comportamientos de esta lo que nos ahorrará en muchos casos el escribir una cantidad importante de código, pero estas herencias a su vez en java dan lugar a una estricta jerarquía;

 

  - Una clase que hereda de otra clase se llama "subclase".

  - La clase que da la herencia se llama "superclase".

  - Una clase puede tener un número infinio de subclases.

  - En java a diferenia de otros lenguajes de programación una clase solo puede tener una superclase.

 

 

     En la parte superior de la jerarquía se encuentra la clase OBJECT, todas las clases de java son subclases de la clase object, llegados aqui podemos asumir que la clase object es la clase mas general que existe en java, de tal modo que, en el caso de, por ejemplo, la clase danteRobot de la clase anterior no hemos especificado una superclase para esta clase, pero, a pesar de ello esta clase sigue siendo subclase de la clase object.

 

 

 

     Para crear una clase nos tenemos que basar en dos cosas, en los comportamientos y en los atributos, el comportaminto es como se va a comportar el objeto y los atributos son, bueno, los atributos que va a tener el objeto en cuestión, por ejemplo, en el caso de un jugador de Rudbi los atributos serían la altura, el peso, la edad y la velocidad, y dependiendo de esos factores nosotros que seriamos el entrenador del equipo, debemos de elegir el comportamiento que va a tenerr el jugador, es decir, en este caso en que posición va a jugar si va a correr, patear, placar, interceptar, etc..

 

     Y ademas estas clases pueden crear dependencias entre si, dando lugar a lo que se conoce en programación orientada a objetos como Herencias lo que puede provocar que una clase tome las caracteristicas y atributos de otra clase ya existente, que a esto es lo que se define como herencias, estos puntos son fundamentales para poder entender que es y como funciona la programación orientada a objetos.

 

     Ademas, las clases se pueden enlazar entre si atraves de paquetes e interfaces que esto es lo que puede dar lugar el pasar de objetos simples a auténticos programas muy complejos, recuerda el equipo de música que habiamos visto antes, en aquel ejemplo las clases serían cada uno de los elementos, es decir, el reproductor, los altavoces, la radio y el subwoofer y la aplicación entera sería el aparato de música que como podemos observar, cada uno de los elementos estarían enlazados entre si para poder crear un programa complejo, en este caso, el equipo de música.

.

 

NOTA: varios objetos creados a partir de una misma clase poseen características similares.

 

 

NOTA: el proceso mediante el cual se crean objetos a partir de una clase se llama instanciación, y por lo tanto un objeto en java se denomina tambien con el nombre de instancia.

 

 

NOTA: un paquete es un conjunto de clases agrupadas según sus características.

 

 

     En el ejemplo que realizaremos posteriormente utilizaremos el ejemplo de un robot espacial para realizar una simulación de un robot con algunas funcionalidades que como atributos tendra 3; Estatus, Temperatura y Velocidad. En una clase los atributos están difinidos por unas variables, para esto existen dos tipos de variables, las variables de clase o las de instancia, una variable de instancia va a tener valores diferentes en cada uno de los objetos (instancia), estas variables tambien se pueden definir como variables de objeto, en este caso como en nuestro robot estas caracteristicas van a variar entre un objeto y otro, estas deben ser variables de instancia y las variables de clase son las que se definen para cada clase, un ejemplo de variable de clase puede ser por ejemplo una variable que mostrase el tiempo por ejemplo.

 

Las clases, aparte de atributos tambien poseen comportamientos, las cosas que una clase de objetos puede hacer, pueden ser usadopara cambiar la información de otros objetos, mandar mensajes a otros objetos, etc...

 

Lo que primero vamos a hacer va a ser crear na clase desde cero y utilizar los metodos de esteen nuestro robot, primero vamos a crear un nuevo proyecto, y creamos un nuevo archivo de java vacio (Empty Java File) y le ponemos de nombre Dante Robot por ejemplo, primero hay que crear la clase como llevamos haciendo desde principio de curso, y nuestro programa constará de tres atributos, que serán tres variables instancia y por dos comportamientos que serán dos metodos instancia.

 

Creamos las tres variables estatus, velocidad y temperatura, ahora tenemos que declarar los metodos, primero crearemos el método comprobarTemperatura y dentro un condicional if, lo que hace este metodo es comprobar si la temperatura es mayor que 660, y si es mayor que cambie el estatus por volviendo a casa y la velocidad a 5, y luego el segundo método llamado mostrarAtributos que simplemente mostrará los valores en pantalla con una pequeña explicación de a que equivale cda valor, y lo guardamos.

 

class DanteRobot {
    String estatus;
    int velocidad;
    float temperatura;
    
    //metodo de instancia
    void comprobarTemperatura () {
        if (temperatura > 660) {
            estatus = "volviendo a casa";
            velocidad = 5;
        }
    }
    void mostrarAtributos() {   
        System.out.println("Estatus " + estatus);
        System.out.println("velocidad " + velocidad);
        System.out.println("Temperatura " + temperatura);
    }
}

 

Ahora vamos a crear un nuevo archivo de java vacio, creamos como siempre la clase, y ahora si en la linea dos llamamos al metodo main y dentro del metodo main ahora i podemos empezar a escribir, ahora vamos a usar la clase DanteRobor como plantilla para crear un nuevo objeto de esa clase, con el código que aqui vemos DanteRobot dante = new DanteRobot(); el tipo de contenido es de la clase DanteRobot, colocamos el nombre del objeto, en este caso dante y le decimos que es un nuevo objeto de la clase DanteRobot.

 

Ahora tenemos que darle un valor a las variables de la clase DanteRobot. Para poder utilizaratributos y los metodos de una clase, se utiliza poniendo en nombre del objeto, un punto y el nombre de la variable.

 

class AplicacionRobot {
    public static void main (String [ ] arguments) {
        DanteRobot dante = new DanteRobot();
        dante.estatus = "explorando";
        dante.velocidad = 2;
        dante.temperatura = 510;
        
        //nos mostrará los atributos que tiene el robot
        dante.mostrarAtributos();
        
        //vamos modimicando el valor de la variable velocidad
        System.out.println("Incrementamos velocidad a 3.");
        dante.velocidad = 3;
        
        //nos mostrará los atributos que tiene el robot
        dante.mostrarAtributos();
        
        //vamos modimicando el valor de la variable temperatura
        System.out.println("La temperatura es de " + dante.temperatura + ".");
        dante.temperatura = 670;
        
        //nos mostrará los atributos que tiene el robot
        dante.mostrarAtributos();
        
        //utilizamos el metodo comprobartemperatura
        System.out.println("Coprobando la temperatura");
        dante.comprobarTemperatura();
        dante.mostrarAtributos();
    }
}

 

 

En el próximo tutorial veremos otro de los elementos claves, que son las herencias, los paquetes y las interfaces.

bottom of page