- Constructor (informática)
-
El objetivo del constructor es el de inicializar un objeto cuando éste es creado. Asignaremos los valores iniciales así como los procesos que ésta clase deba realizar.
Se utiliza para crear tablas de métodos virtuales y poder así desarrollar el polimorfismo, una de las herramientas de la programación orientada a objetos (POO). Al utilizar un constructor, el compilador determina cual de los objetos va a responder al mensaje (virtual) que hemos creado. Tiene un tipo de acceso, un nombre y un paréntesis.
Java
En java es un método especial dentro de una clase, que se llama automáticamente cada vez que se crea un objeto de esa clase.
Posee el mismo nombre de la clase a la cual pertenece y no puede regresar ningún valor (ni siquiera se puede especificar la palabra reservada
void
). Por ejemplo si añadiéramos a la claseSSuma
un constructor, tendríamos que llamarlo tambiénSSuma
. Cuando en una clase no se escribe propiamente un constructor, java asume uno por defecto.Constructor por defecto
Un constructor por defecto es un constructor sin parámetros que no hace nada. Sin embargo será invocado cada vez que se construya un objeto sin especificar ningún argumento, en cuyo caso el objeto será iniciado con los valores predeterminados por el sistema (los atributos numéricos a ceros, los alfanuméricos a nulos, y las referencias a objetos a
null
).Ejemplo
Un constructor por defecto, para la clase
SSuma
quedaría así:public SSuma() {}
Como se observa el constructor no posee ningún parámetro, ya que como no ha sido definido propiamente por el programador, Java lo hace por
default
.Si se define un constructor con parámetros, (definido explícitamente) el constructor por
default
se reemplaza por éste.Ahora podemos crear un constructor explícito para una clase simple, utilizando el nombre
Arychan
para la clase.Arychan
es una clase que se refiere a una persona de cierta edad, que posee un nombre y ciertos atributos, puede ser divertida, y hermosa, estos atributos serán del tipo cadena de caracteres (String) por lo que se agregará un atributo más llamado salario y será de tipo numérico.Primero se declara la clase con sus atributos:
class Arychan { //ATRIBUTOS private String nombre; private String descripción; private String formaDeSer; private double salario; //CONSTRUCTORES public Arychan() {} //CONSTRUCTOR SIN PARÁMETROS public Arychan(String nom, String des, String forma, double sal) { asignarNombre(nom); // nombre = nom; asignarDescripcion(des); // descripción = des; describir(forma); //formaDeSer = forma; ingreso(sal); //salario = sal; } //... }
El constructor sin parámetros es reemplazado por el constructor explícito. En este ejemplo se puede observar que los constructores preferentemente se declaran públicos para que puedan ser invocados desde cualquier parte.
Una línea como esta invocará al constructor sin parámetros:
Arychan ary01 = new Arychan();// invoca al constructor Arychan
El operador
new
crea un nuevo objeto, en este caso de la claseArychan
, y a continuación se invoca al constructor de la clase para realizar las operaciones de iniciación que estén programadas.Ahora invocaremos al constructor con parámetros, recordemos que la clase
Arychan
es una persona con características como divertida, hermosa, mismas que pasaremos como argumentos.Arychan ary02 = new Arychan("Ary", "hermosa", "divertida", 25000);
Wikimedia foundation. 2010.