Llamar a una función constructora dentro de la misma clase, puede ayudarnos a reducir el código, evitando que reescribamos las mismas inicializaciones y que tengamos código duplicado.
Por ejemplo, supongamos que tenemos dos formas de crear un objeto de una clase Rectangle:
- Indicando las coordenadas (x,y) y el ancho y alto del rectángulo. (por defecto será azul)
- Indicando el ancho y alto del rectángulo y el color del rectángulo. (por defecto estará en las coordenadas 0,0)
Con la función this() podemos llamar a cualquier método constructor de la clase, esta función sólo puede ser llamada al principio del constructor, y nos permitirá no tener que duplicar códigos de inicialización.
public Rectangle{
public float x; public float y; public float width; public float height; public float[] color = {0f, 192f, 255f};
public Rectangle(float x, float y, float width, float height){
this.x = x; this.y = y; this.width = width; this.height = height;
}
public Rectangle(float width, float height, float[] color){
this(0f, 0f, width, height);
this.color = color;
}
}
Como podéis ver en el segundo método constructor inicializo directamente los valores de x, y, width y height llamando al primer constructor, esto es muy útil cuando tenemos constructores grandes, y facilita el mantenimiento del código.Un saludete!
No hay comentarios:
Publicar un comentario