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.
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.
Table de Contenido
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.
2 comentarios
Visitor Rating: 5 Stars
mut bonito