RSS

Orientación a Objetos (VI) – Constructores

08 Jun

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

Anuncios
 
1 comentario

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

 

Etiquetas: , , , ,

Una respuesta a “Orientación a Objetos (VI) – Constructores

  1. Arturo

    16 septiembre, 2015 at 12:50 am

    Tal vez quisiste decir que “se sobreentiende” de Persona extiende de Object, pero al escribir:

    public class Solicitante extends Persona extends Object {

    }

    éso es un error de compilación, pues Persona ni ninguna otra clase no puede extender de dos clases al mismo tiempo.
    Hay que Aclarar que Persona no puede tener “dos padres” en el mismo nivel jerárquico, no mediante “extends”, solo a través de “implements”

    Saludos

     

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

 
A %d blogueros les gusta esto: