RSS

Archivo de la etiqueta: constructores

Orientación a Objetos (VI) – Constructores

Constructores

Los constructores son métodos especiales que se utilizan para inicializar un objeto de una clase.
Los constructores son la única forma de crear un objeto en Java.

El nombre del constructor debe ser idéntico al de la clase y no tendrá tipo de retorno. Los modificadores de acceso válidos para los constructores son: public, protected y private.

Una clase puede tener cualquier número de constructores. Todos tendrán el mismo nombre y al igual que otros métodos sobrecargados, los constructores se diferenciaran unos de otros en el número y en el tipo de sus parámetros.

La sintaxis será:
[modificador acceso] nombreClase ([listaParámetros]) {…}

Encadenamiento de Constructores

Para llamar al constructor utilizaremos la palabra clave new. Además, con esta palabra clave, no sólo estamos invocando al constructor de la clase de nuestro objeto, sino también a los constructores de las superclases.

Por ejemplo, imaginemos que tenemos la siguiente clase:

 public class Solicitante extends Persona extends Object {
 ...
 }
 

Al crear un objeto con new,

...
 Solicitante solAyuda1 = new Solicitante();
...

se llamará al constructor de Solicitante, que llamará al constructor de Persona, que llamará al constructor de Object. Después, terminará el constructor de Object, terminará el constructor de Persona inicializando los atributos que le correspondan, y terminará el constructor de Solicitante inicializando los atributos que le correspondan.

El Constructor es Obligatorio

Todas las clases deben tener un constructor, incluso las clases abstractas.

Si no escribimos un constructor para una clase el compilador añade uno por defecto.
En este caso, el constructor no tendrá parámetros, su cuerpo estará vacío y tendrá el mismo modificador de acceso que la clase.

Por ejemplo, para esta clase que no hemos escrito constructor:

public class Persona{
    private String id;
    private String nombre;
    private String movil;
}

El compilador insertaría:

public class Persona{
    private String id;
    private String nombre;
    private String movil;
    public Persona(){}
}

En el momento en que escribamos un constructor (con o sin parámetros) el constructor por defecto se perderá.

A Recordar

  • Cada constructor debe tener en su primera línea una llamada a otro constructor sobrecargado, (this) o una llamada al constructor de la superclase (super).
  • En el caso de que no escribamos la llamada a super, el compilador insertará automáticamente una llamada a super sin parámetros, super().
  • Sólo es posible llamar a a un constructor desde otro constructor.
  • Las interfaces no pueden tener constructores, ya que no son clases.
  • La llamada al constructor de la superclase mediante super puede ser con o sin parámetros.
  • Si el constructor de la superclase necesita parámetros y en el constructor de la subclase hacemos una llamada a super sin parámetros fallará.
  • Las clases abstractas también tienen constructores. Estos constructores serán llamados cuando se ejecute el constructor de las subclases que la concretan.

Ver También: Sobrecarga de Constructores

 
1 comentario

Publicado por en 8 junio, 2011 en Estudio, Tema 2

 

Etiquetas: , , , ,