Constructores sobrecargados

Sobrecargar un constructor significa escribir versiones múltiples del constructor de una clase, cada uno de ellos con una lista diferente de argumentos, algo parecido a lo que se muestra a continuación:

 

class Animal{

 

  Animal(){}

 

  Animal(String nombre){}

 

  Animal(String nombre, int edad){}

 

}

 

En la clase anterior (la clase Animal) podemos identificar que existen 3 constructores sobrecargados, uno que toma una cadena como argumento, otro que toma una cadena y un entero y otro sin argumentos. Debido a que el constructor sin argumentos actualmente no contiene código es igual al constructor por defecto que provee el compilador de forma automática, pero debido a que ya existe otro u otros constructores en la clase, el compilador no agregará un constructor por defecto de manera automática.

 

Sobrecargar un constructor es típicamente utilizado para proveer a los clientes formas alternas de instanciar objetos de la clase. Por ejemplo, si el cliente sabe el nombre del Animal, puede pasarlo como argumento por medio del constructor que toma una cadena pero no si lo sabe puede crear el objeto Animal utilizando el constructor sin argumentos.

 

Si existen diversos constructores para una clase debemos de tomar en cuenta que lo que determina qué constructor se llamará una vez que se crea el objeto o se utiliza la palabra clave 'new' es precisamente los argumentos que pasamos, por ello, no pueden existir múltiples constructores con la misma lista de argumentos.

 

Otro punto a tomar en cuenta (que ya he mencionado en el artículo anterior sobre constructores) es que un constructor nunca NUNCA podrá devolver nada, ni siquiera void, si se llega a encontrar algo como esto...

 

class Animal {

 

  void Animal(){} //No es un constructor, es un método

 

  Animal(String nombre){} //Constructor!

 

}

 

...estamos hablando de un método que tiene el mismo nombre de la clase que devuelve un valor tipo void y de un constructor que acepta como argumento un valor tipo cadena.

 

Hasta aquí llegamos con constructores sobrecargados. Alguna duda o algo qué decir? Deja tu comentario. Saludox.

 

7 comentarios:

  1. DesslocH! dijo...:

    esta muy bueno el blog me estay salvando pa un certsmen pero mortal....vale compare xd

  1. DesslocH! dijo...:

    jjaa yo denuevo¿ pero al sobrecargar un constructor, como sabe el programa cual necesitara el usuario...?

  1. Monillo007 dijo...:

    Si existen diversos constructores para una clase debemos de tomar en cuenta que lo que determina qué constructor se llamará es precisamente los argumentos que pasamos al momento de crear el objeto. La JVM no elige cuál es el indicado, lo hacemos nosotros al mandarlo llamar.

  1. Anónimo dijo...:

    amigo tengo un ejercicio.... al que no le entiendo muy bien al enunciado... pero el chiste que me dice que declare dos constructores... uno sin argumentos y otro que reciba los datos... es esto correcto???:
    public Libro(){
    }
    public Libro(String titulo, String autor, String editorial, int cantidad, float precio){
    this.titulo=titulo;
    this.autor=autor;
    this.editorial=editorial;
    this.cantidad=cantidad;
    this.precio=precio;
    }

    otra forma no se me ocurrió... solo quiero saber si esa es la idea :S

  1. Mario dijo...:

    Anónimo:
    Agregaste los dos constructores de forma correcta, solo un comentario, cuando agregues un constructor sin código no necesitas indicarlo ya que la JVM los coloca por default asi que está de más, a menos que, coloques código dentro del constructor sin parametros

  1. Anónimo dijo...:

    la verdad me sacaste de una buena duda gracias.....

  1. Anónimo dijo...:

    son muy basicos tus ejemplos por fabor pon mas directo el asunto de sobrecargar e inicializar un constructor,nose xq haces tanta vuelta, si ......................

Publicar un comentario

Este es un espacio abierto, puedes escribir lo que gustes respetando los siguientes puntos:

1.- Lo que escribas esté relacionado con el post, si gustas contactarme puedes hacerlo aqui.

2.- Todo es cuestionable, aunque ten en cuenta que existen formas de hacerlo, evita las agresiones y revisa tu lenguaje antes de publicar un comentario.

3.- Siempre hay tres verdades: tu verdad, mi verdad y la verdad, por lo que opiniones diferentes no necesariamente son equivocadas.

4.- Los comentarios son una forma de discusión abierta, por lo que al publicar uno, implícitamente entras a una discusión, con todo lo que esto representa.

5. Me reservo el derecho de eliminar comentarios que no respeten las condiciones mencionadas anteriormente.

Toma en cuenta que puedes utilizar emoticones en tu comentario, para ver una lista de los disponibles da clic en este enlace.

 
Monillo007 © 2010 | Designed by Trucks, Manual Bookmarking | Elegant Themes