Constructores

Recuerda que hemos visto que para crear un objeto se usa la instrucción new, seguida del nombre de la clase y una pareja de abre paréntesis-cierra paréntesis:

Alumno alumno1 = new Alumno();

Esta operación invoca al constructor por defecto, que se proporciona automáticamente y tiene el mismo nombre que la clase.

Lo habitual es que al escribir una clase se quiera construir los objetos de la clase de una determinada forma. Para ello, se escriben uno o más constructores. Para definir un constructor, se pone el tipo de acceso, el nombre de la clase,  los parámetros que acepta, si lanza excepciones (ya las explicaré en su momento, tranquilos/as), y un cuerpo o bloque de código, de esta forma:

acceso nombreClase (parámetros) throws excepciones {cuerpo}

Así, para la clase Alumno, se pueden proporcionar dos constructores: uno que recibe el nombre y los apellidos; y otro que acepte además el grupo y tipo de horario. El código sería el siguiente:

public Alumno(String nombre, String apellidos) {
this.nombre = nombre;
this.apellidos = apellidos;
}

public Alumno(String nombre, String apellidos, String grupo, HORARIO horario) {
this.nombre = nombre;
this.apellidos = apellidos;
this.grupo = grupo;
this.horario=horario;
}

Los constructores declarados sustituyen al proporcionado por defecto. Por tanto, el constructor por defecto ya no se puede utilizar. Ahora, para construir cvualquier alumno es necesario proporcionar los valores apropiados de acuerdo con el constructor que se utilice:

Alumno alumno1 = new Alumno(“Pepito”, “García”);

Alumno alumno2 = new Alumno (“María”,”Gonzalez”, “Grupo 5”, HORARIO.Tarde);

Ahora sería ilegal el siguiente código:

Alumno alumno3 = new Alumno //ERROR ¡¡¡NO HAY CONSTRUCTOR SIN PARÁMETROS!!!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s