Clases en Java

En esta ocasión vamos a ver que son las Clases en Java. Introduciré el concepto de programación orientada a objetos y explicaré como declarar las Clases: definirlas para poder luego crear objetos con ellas.

La programación orientada a objetos

Las clases y los objetos, son dos conceptos básicos de la programación orientada a objetos, que tenemos que entender muy bien.

Una Clase es un molde definido por el usuario que empleamos para crear objetos. Este molde incluye una serie de propiedades y métodos que son comunes a todos los objetos creados con una clase.

La clase puede ser vista como un molde y el objeto como una implementación concreta sacada de ese molde. Por lo que con una clase podemos generar muchos objetos que tendrán las mismas características.

La programación orientada a objetos basa toda la codificación en objetos, que intentaran similar objetos reales o conceptos.  Dicho así puede sonar un poco abstracto, pero cuando practiquemos programando nos quedará claro este concepto.

Declaración de una Clase

La declaración de una clase incluye los siguientes componentes:

  • Modificadores: debe ser public para asegurar el acceso desde otras clase o tener el acceso por defecto.
  • Nombre: Para identificar a la clase. Debe de empezar con una letra mayúscula.
  • Superclase (si existe): Es el nombre de la clase padre si la tuviera. Hablaré de la clase padre cuando introduzcamos el concepto de herencia. En la declaración de la clase, el nombre de la superclase aparecerá precedido por la palabra clave extends.
  • Interfaces (si hay): Una lista de interfaces implementados por la clase, separados por comas, precedidos por la palabra clave implements. Una clase implementa uno o más interfaces.
  • Cuerpo: Bloque de instrucciones de la clase, entre corchetes { }.

Declaración de una clase:

class MiClase extends MiSuperClass implements UnInterface {
    < parámetros, construtores y métodos >
}

Este ejemplo de declaración de clase nos indica que la clase MiClase es hija de la superclase MiSuperClass y que además implementa el interface UnInterface.

Una clase tiene que ser programada en un fichero java con el nombre de la clase. Por ejemplo, la clase Coche debería estar programada en un fichero llamado Coche.java

Una clase contiene constructores que son métodos empleados para crear objetos a partir del molde de la clase. Cuando en nuestro programa, queramos crear un objeto de una clase, invocaremos a un constructor de dicha clase.

 Los constructores se declaran como métodos, con la particularidad de que tienen que tener el mismo nombre que la clase y que no devuelven ningún valor.

Parámetros, constructores y métodos

Las clases representan atributos y comportamientos. Los atributos son definidos por los parámetros que son variables que definimos en la clase. Y los comportamientos están definidos por los métodos de la clase.

En la siguiente actividad, practicamos con estos dos conceptos:

Actividad: Declarando Clases

  1. Abre el compilador online:

https://www.jdoodle.com/online-java-compiler/

  1. Como vamos a trabajar con varias clases, tendremos que guardar cada una en un fichero con su nombre y la extensión java. Trabajando con el compilador online, lo primero que tenemos que hacer es cambiar al modo avanzado (Advanced java IDE) que nos permitirá trabajar con varios ficheros.
Opción avanzada del compilador java online
Opción avanzada del compilador java online
  1. Lo primero que vamos a hacer es crear un nuevo fichero donde programaremos nuestra clase. La Clase la llamaremos Coche y por tanto el fichero será Coche.java
  2. Para crear el fichero nuevo, empleamos la opción de “New File” que se muestra en la imagen de abajo:
Opción para crear fichero nuevo
Opción para crear fichero nuevo
  1. Empezamos definiendo los parámetros de la clase, que son las variables que definirán cada uno de los objetos que generemos con la clase. Para nuestro ejemplo de un coche, definiremos los siguientes parámetros:
  • CV: La potencia del motor del coche expresado en CV
  • numeroPuertas: El número de puertas que tiene el coche.
  • propietario: el dueño del coche.
  • color: color del coche.
  • combustible: el tipo de combustible que consume el coche
  • encendido: variable booleana para indicar si el coche está o no encendido
  • porcentajeTanqueLleno: porcentaje del tanque de combustible que está lleno
  1. Todos estos parámetros serían variables que programamos al principio de la clase. Para ello, introducimos el siguiente código en el fichero Coche.java que acabamos de crear.
public class Coche{
    int CV;
    int numeroPuertas;
    int añoFabricacion;
    String propietario;
    String color;
    String combustible;
    boolean encendido;
}
  1. Lo siguiente sería crear un constructor de la Clase. El constructor es un método que tiene el nombre de la Clase y que emplearemos para crear un objeto de la clase. Tiene que ser declarado como public, para que sea accesible desde fuera de la Clase. Un ejemplo sería el siguiente código en el que sólo empleamos dos parámetros en el constructor: el número de puertas y el propietario.
    public Coche(int np, String pro){
        this.numeroPuertas = np;
        this.propietario=pro;
    }
  1. El constructor recibe dos parámetros: np y pro, que se pasaran al constructor cuando se emplee este para crear un objeto. Dichos valores se almacenaran en los parámetros numeroPuertas y propietario, respectivamente. La palabra reservada this hace referencia al objeto que se este creando con el constructor, por lo que los valores pasados al constructor se almacenaran en los parámetros correspondientes del objeto.
  2. Además, creamos tres métodos: arranque, parado y llenadoTanque. El código de estos métodos sería:
    public void arranque(){
        if (porcentajeTanqueLleno>5){
            encendido = true;
        }
    }
    public void parado(){
        encendido = false;
    }
    public int llenadoTanque(){
        if (porcentajeTanqueLleno<80){
            porcentajeTanqueLleno = 100;
        }
        return porcentajeTanqueLleno;
    }
  1. El método arranque simula el arranque del coche, poniendo el parámetro encendido a verdadero. Aunque antes comprueba que al menos tengamos un 5% del tanque de combustible lleno.
  2. El método parado, sencillamente apaga el coche haciendo la variable encendido falsa
  3. Y el método llenadoTanque, simula el llenado del tanque de combustible poniendo a 100 el parámetro porcentajeTanqueLleno, siempre y cuando no lo tuviéramos más lleno del 80%, en cuyo caso lo deja como está.
  4. Con todo ello, el código completo de la Clase Coche quedaría:
public class Coche{
    int CV;
    int numeroPuertas;
    int añoFabricacion;
    String propietario;
    String color;
    String combustible;
    boolean encendido;
    int porcentajeTanqueLleno;
    public Coche(int np, String pro){
        this.numeroPuertas = np;
        this.propietario=pro;
    }
    public void arranque(){
        if (porcentajeTanqueLleno>5){
            encendido = true;
        }
    }
    public void parado(){
        encendido = false;
    }
    public int llenadoTanque(){
        if (porcentajeTanqueLleno<80){
            porcentajeTanqueLleno = 100;
        }
        return porcentajeTanqueLleno;
    }
}

De momento, no hemos usado la clase, sencillamente la hemos programado y explicado su código. En las próximos posts continuaremos desarrollando la clase y comenzaremos a utilizarla.

NOTA:

Este post es parte de la colección “Java”. Puedes ver el índice de esta colección aquí.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.