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