Hola!

Ya estuvimos hablando de los constructores y espero que hayan podido realizar algunas prácticas con ellos. Ahora veremos un poco mas en profundidad que podemos realizar con ellos.

Los constructores son funciones que se ejecutan cuando se crean los objetos. Cuando se crea un objeto con new, primero se reserva el espacio para almacenar los valores de cada uno de sus tributos (variables de instancia) y a continuación el código de un constructor definido en la clase.

Las funciones constructoras tienen el mismo nombre que la clase, una lista de parámetros que puede estar vacía y no devuelven nada (ni void). Son las únicas funciones en Java que no devuelven ningún valor.

En una clase se pueden definir tantos constructores como se necesiten. cada constructor representa una forma distinta de crear los objetos de una clase.

Cuando una clase tiene varios constructores se dice que estas funciones constructoras están sobrecargadas. La sobrecarga es el mecanismo por el cual en una clase pueden existir varias funciones que teniendo el mismo nombre se diferencian en el número y/o el tipo de los parámetros. Este es el caso de los constructores, todos tienen el mismo nombre, pero se diferencian en la lista de parámetros.

En el código siguiente se muestra una clase con tres constructores:

public class MiClase {

private int numero;
private String nombre;

//Constructor sin parámetros
public MiClase(){
     numero = 99;
     nombre =”anonimo”;
}

//Constructor con dos parámetros
public MiClase(int num, String cad){
     numero = num;
     nombre = cad;
}

//Constructor que recibe referencia objeto de MiClase
public MiClase(MiClase o){
     numero= o.numero;
     nombre= o.nombre;
}

public void leerDatos(){
     System.out.println(“Nombre: “ + nombre);
     System.out.println(“Numero: “ + numero);
}
}

El objetivo principal de los constructores es inicializar de un modo determinado las variables de instancia para el objeto que se crea. En los códigos típicos de las funciones constructoras se asignan valores a las variables de la clase.

Si una clase no define ningún constructor, es como si Java ejecutase el constructor sin parámetros y sin código alguno. Pero es muy importante recordar que en cuanto se defina un sólo constructor, la funcionalidad anterior deja de ser efectiva.

Otra característica que hay que tener en cuenta con los constructores es que tienen que estar en un ámbito como public para que así se pueda acceder desde donde se intente crear el objeto.

MiClase objeto1= new MiClase();
objeto1.leerDatos();
MiClase objeto2= new MiClase(18, “Pepe Pepito”);
objeto2.leerDatos();
MiClase objeto3= new MiClase(objeto2);
objeto3.leerDatos();

Deja un comentario

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