Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Duda] Dudas respecto al uso de this() dentro de constructores

Tengo la siguiente inquietud (con base al ejemplo dado en la clase): en esta clase se explica que es posible llamar a un constructor dentro de otro para evitar la duplicación de códigos y reglas, lo cual lo hacen por medio de la palabra this(//parámetros). Pero, entonces,

  • ¿Yo puedo tener la cantidad de constructores que desee y no tan solo 2 como se muestra en este ejemplo? Si la respuesta es sí, entonces, si yo tuviera 3 o más constructores, y dos de ellos (constructores A y B) tienen exactamente los mismos parámetros, por ejemplo (String anho, double precio),
  • ¿Cómo podría decirle al constructor C (usando o no la palabra this(//parámetros)) que estoy llamando específicamente al constructor A o al constructor B?

Espero haya sido claro con las dudas que tengo. Muchas gracias :)

public class Carro{
    private int ano;
    private String modelo;
    private double precio;

    public Carro(int ano, String modelo, double precio){
        if(ano >= 1891){
            this.ano = ano;
        }else{
            System.out.println("El año informado no es válido. Por eso usaremos 2017!");
            this.ano = 2017;
        }

        if( modelo != null){
            this.modelo = modelo;
        }else{
            System.out.println("El modelo no fue informado. Por eso usaremos Gol!");
            this.modelo = "Gol";
        }

        if(precio > 0){
            this.precio = precio;
        }else{
            System.out.println("EL precio no es válido. Por eso usaremos 40000.0!");
            this.precio = 40000.0;
        }
    }

    //Nuevo constructor AQUI!
    public Carro(String modelo, double precio){
        this(2017, modelo, precio);
    }

    //getters e setters omitidos

}
2 respuestas
solución!

¡Hola David!

Gracias por tu pregunta. Permíteme responder a tus dudas:

  1. Sí, puedes tener la cantidad de constructores que desees en una clase. No estás limitado a solo dos constructores. Puedes tener tantos como necesites para adaptarte a diferentes situaciones o requerimientos.

  2. Si tienes varios constructores con los mismos parámetros, puedes diferenciarlos utilizando diferentes combinaciones de parámetros. Por ejemplo, si tienes dos constructores A y B con los mismos parámetros (String anho, double precio), puedes diferenciarlos agregando un parámetro adicional a uno de ellos. Por ejemplo:

public Carro(String anho, double precio, boolean esNuevo){
    // código del constructor A
}

public Carro(String anho, double precio){
    // código del constructor B
}

De esta manera, puedes llamar al constructor específico pasando los parámetros correspondientes. Por ejemplo:

Carro carroA = new Carro("2019", 50000.0, true); // llama al constructor A
Carro carroB = new Carro("2019", 50000.0); // llama al constructor B

Espero que esta respuesta resuelva tus dudas. Si tienes alguna otra pregunta, no dudes en hacerla.

¡Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Entiendo, debe haber un elemento diferencial en los parámetros de los constructores. Muchas gracias, Luis :D