Constructores en Java con Ejemplos

Intermedio POO

Aprende sobre los constructores en Java a través de ejemplos. La importancia de usarlos y cómo usarlos en el código de Java.

Antes de que continúes
Necesitas leer sobre Clases

En los ejemplos anteriores, las variables de instancia de cada objeto Vehiculo debían establecerse manualmente usando una secuencia de instrucciones, como por ejemplo:

minivan.pasajeros = 9;
minivan.capacidad = 15;
minivan.mpg = 20;

Un enfoque como lo anterior nunca se usaría en un código Java escrito profesionalmente. Además de ser propenso a errores (puede olvidarse de configurar uno de los campos), simplemente hay una mejor manera de lograr esta tarea: con un constructor.

1. Qué es un constructor en Java

Un constructor inicializa un objeto cuando se crea. Tiene el mismo nombre que su clase y es sintácticamente similar a un método. Sin embargo, los constructores no tienen un tipo de devolución explícito. Normalmente, usará un constructor para dar valores iniciales a las variables de instancia definidas por la clase, o para realizar cualquier otro procedimiento de inicio requerido para crear un objeto completamente formado.

Todas las clases tienen constructores, ya sea que usted defina uno o no, porque Java proporciona automáticamente un constructor predeterminado. En este caso, las variables de miembro no inicializadas tienen sus valores predeterminados, que son cero, null y false, para tipos numéricos, tipos de referencia y booleanos, respectivamente. Una vez que defines tu propio constructor, el constructor predeterminado ya no se usa.

Aquí hay un ejemplo simple que usa un constructor:

//Un ejemplo siemple de constructor

class MiClase {

    int x;

    MiClase(){
        x=10;
    }

}

class ConstructorDemo {

    public static void main(String[] args) {
       MiClase t1= new MiClase();
       MiClase t2= new MiClase();

        System.out.println(t1.x + " - "+t2.x);
    }
}

En este ejemplo, el constructor de MiClase es:

MiClase(){
 x=10;
 }

Este constructor asigna a la variable de instancia x de MiClase el valor de 10. Este constructor es llamado por new cuando se crea un objeto. Por ejemplo, en la línea:

MiClase t1= new MiClase();

El constructor MiClase() es llamado en el objeto t1, dando a t1.x el valor de 10. Lo mismo es cierto para t2. Después de la construcción, t2.x tiene el valor de 10. Por lo tanto, el resultado del programa es:

Salida:

10 - 10

2. Constructores parametrizados

En el ejemplo anterior, se utilizó un constructor sin parámetros. Aunque esto está bien para algunas situaciones, la mayoría de las veces necesitará un constructor que acepte uno o más parámetros.

Los parámetros se agregan a un constructor de la misma manera que se agregan a un método: simplemente declararlos dentro del paréntesis después del nombre del constructor. Por ejemplo, aquí, MiClase tiene un constructor parametrizado:

//Un ejemplo de constructor parametrizado

class MiClase {

    int x;

    MiClase(int i){
        x=i;
    }

}

class ConstructorDemo {

    public static void main(String[] args) {
       MiClase t1= new MiClase(15);
       MiClase t2= new MiClase(28);

        System.out.println(t1.x + " - "+t2.x);
    }
}

La salida de este programa es:

15 - 28

En esta versión del programa, el constructor MiClase() define un parámetro llamado i, que se usa para inicializar la variable de instancia, x. Por lo tanto, cuando la línea:

MiClase t1= new MiClase(15);

se ejecuta, el valor 10 pasa a i, que luego se asigna a x.

3. Ejemplo de Constructor en Java

Siguiendo nuestro ejemplo anterior, vamos a agregar un constructor a la clase Vehiculo:

//Un ejemplo de constructor

class Vehiculo {
    int pasajeros;  //números de pasajeros
    int capacidad;  //capacidad del combustible en galones
    int mpg;        //combustible consumido en miles por galon

    //Esto es un constructor para Vehiculo
    Vehiculo (int p, int c, int m) {
        pasajeros=p;
        capacidad=c;
        mpg=m;
       }

     //Retornando el rango
    int rango(){
        return mpg*capacidad;
    }

    //Calcular el combustible necesario para una distancia dada
    double capacidadnueva(int miles){
        return (double)miles/mpg;
    }

    }


class DemoVehiculo {
    public static void main(String[] args) {

        Vehiculo minivan = new Vehiculo(9,15,20);
        Vehiculo sportscar = new Vehiculo(10,25,30);

        double galones;
        int distancia = 250;

        galones=minivan.capacidadnueva(distancia);
        System.out.println("Para ir a "+distancia+" en minivan, se necesita "+galones+" galones");

        galones=sportscar.capacidadnueva(distancia);
        System.out.println("Para ir a "+distancia+" en sportscar, se necesita "+galones+" galones");
    }
}

Salida:

Para ir a 250 en minivan, se necesita 12.5 galones
Para ir a 250 en sportscar, se necesita 8.333333333333334 galones

Ambos, minivan y sportscar, son inicializados por el constructor Vehiculo() cuando se crean. Cada objeto se inicializa como se especifica en los parámetros para el constructor. Por ejemplo, en la siguiente línea,

Vehiculo minivan = new Vehiculo(9,15,20);

los valores 9,15,20 se pasan al constructor Vehiculo() cuando new crea el objeto. Por lo tanto, la copia de pasajeros, capacidad y mpg de minivan contendrá los valores 9,15,20, respectivamente. El resultado de este programa es el mismo que la versión anterior.

Constructores en Java
  • Ejemplos de Constructores
Sending
User Review
5 (1 vote)

Sobre el Autor:

Hey hola! Yo soy Alex Walton y tengo el placer de compartir conocimientos hacía ti sobre el tema de Programación en Java, desde cero, Online y Gratis.

Deja una Respuesta

*

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