En programación orientada a objetos (POO), un constructor es una subrutina cuya misión es inicializar un objeto de una clase. En el constructor se asignan los valores iniciales del nuevo objeto.
Se utiliza para crear tablas de clases virtuales y poder así desarrollar el polimorfismo, una de las herramientas de la programación orientada a objetos. 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
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 cero, los alfanuméricos a nuloPeq, y las referencias a objetos a null
).
Ejemplo
Un constructor por defecto para la clase SSuma
quedaría así:
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 este.
A continuación se creará un constructor explícito para una clase simple, utilizando una clase Persona
con una serie de atributos.
Primero se declara la clase con sus atributos:
class Persona
{
//ATRIBUTOS
private String nombre;
private int edad;
private String empleo;
private double salario;
//CONSTRUCTORES
public Persona() {} //CONSTRUCTOR SIN PARÁMETROS
public Persona(String nombre, int edad, String empleo, double salario)
{
asignarNombre(nombre);
asignarEdad(edad);
asignarEmpleo(empleo);
asignarSalario(salario);
}
//...
}
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:
Persona pers01 = new Persona();// invoca al constructor Persona
El operador new
crea un nuevo objeto, en este caso de la clase Persona
, y a continuación se invoca al constructor de la clase para realizar las operaciones de iniciación que estén programadas.
A continuación se invocará al constructor con parámetros, que se introducirán en el orden especificado en el constructor.
Persona pers02 = new Persona("Pepe Pérez", 30, "Programador", 25000);