Autor Tema: cómo deben inicializarse los objetos en Java diferencia constructores CU00637B  (Leído 2406 veces)

Jlinos

  • Sin experiencia
  • *
  • Mensajes: 15
    • Ver Perfil
Buenas tardes. Envío el ejercicio CU00637B del tutorial pdf de programación java de aprenderaprogramar. Si pueden revisar el trabajo y me dicen si voy en el buen camino.
Muchas gracias.

Código: [Seleccionar]
public class Motor
{
    //Atributos
    private int tipoBomba;
    private String tipoFluido;
    private String combustible;

    public Motor(int valorTipoBomba, String valorTipoFluido, String valorCombustible){
        tipoBomba = 0;
        tipoFluido = "";
        combustible = "";
    }
    //Método dimeTipoMotor
    public void dimeTipoMotor(){
        switch(tipoBomba){
            case 0:
            System.out.println("No hay establecido un valor definido para el tipo de bomba.");
            break;
            case 1:
            System.out.println("La bomba es una bomba de agua.");
            break;
            case 2:
            System.out.println("La bomba es una bomba de gasolina.");
            break;
            case 3:
            System.out.println("La bomba es una bomba de hormigón.");
            break;
            case 4:
            System.out.println("La bomba es una bomba de pasta alimenticia.");
            break;
            default:System.out.println("No existe un valor válido para tipo de bomba");
            break;
        }
    }
    //Métodos setter y getter
    public void setTipoBomba(int valorTipoBomba){
        tipoBomba = valorTipoBomba;
    }
    public int getTipoBomba(){
        return tipoBomba;
    }
    public void setTipoFluido(String valorTipoFluido){
        tipoFluido = valorTipoFluido;
    }
    public String getTipoFluido(){
        return tipoFluido;
    }
    public void setCombustible(String valorCombustible){
        combustible = valorCombustible;
    }
    public String getCombustible(){
        return combustible;
    }   
}// Cierre de la clase Motor
« Última modificación: 08 de Julio 2018, 13:27 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, este ejercicio no está bien resuelto.

El problema está en que aquí tienes un constructor que recibe parámetros, pero sin embargo has escrito:

Código: [Seleccionar]
    public Motor(int valorTipoBomba, String valorTipoFluido, String valorCombustible){
        tipoBomba = 0;
        tipoFluido = "";
        combustible = "";
    }

Los parámetros sirven para inicializar los campos de un objeto cuando se crea. Por ejemplo, voy a crear un objeto y le paso como parámetros tipo bomba 3, tipo fluido "liquido" y combustible "gasolina". Esos parámetros se usarán para inicializar el objeto. Sin embargo con tu código da igual los parámetros que le pases que el tipo bomba será cero, el tipo fluido ninguno (cadena vacía) y combustible ninguno (cadena vacía). ¿Entonces para qué sirven los parámetros? La inicialización a ceros o cadenas vacías se hace cuando no hay parámetros y por tanto no sabemos con qué valores se deben inicializar los objetos. Pero si el constructor tiene parámetros, será para utilizarlos.

Por otro lado, visto lo que ocurre cabe deducir que no has probado tu código. Es importante que cuando crees código lo pruebes. En este caso deberías haber creado un objeto en BlueJ como se explica en el curso y haberle introducido por ejemplo como tipo de bomba 3, y así comprobar que el código no funciona como debería.

Este código debería corregirse. Para ello puedes repasar tanto el curso como otros hilos del foro.

Saludos

Jlinos

  • Sin experiencia
  • *
  • Mensajes: 15
    • Ver Perfil
Buenas tardes y gracias Alex.
No entendí el enunciado en cuanto al constructor, no tenía que pasarle parámetros.
Ahora lo he entendido y lo he corregido.También me faltó crear el objeto.
Código: [Seleccionar]
public class Motor
{
    //Atributos
    private int tipoBomba;
    private String tipoFluido;
    private String combustible;

    public Motor(){
        tipoBomba = 0;
        tipoFluido = "";
        combustible = "";
    }
    //Método dimeTipoMotor
    public void dimeTipoMotor(){
        switch(tipoBomba){
            case 0:
            System.out.println("No hay establecido un valor definido para el tipo de bomba.");
            break;
            case 1:
            System.out.println("La bomba es una bomba de agua.");
            break;
            case 2:
            System.out.println("La bomba es una bomba de gasolina.");
            break;
            case 3:
            System.out.println("La bomba es una bomba de hormigón.");
            break;
            case 4:
            System.out.println("La bomba es una bomba de pasta alimenticia.");
            break;
            default:System.out.println("No existe un valor válido para tipo de bomba");
            break;
        }
    }
    //Métodos setter y getter
    public void setTipoBomba(int valorTipoBomba){
        tipoBomba = valorTipoBomba;
    }

    public int getTipoBomba(){
        return tipoBomba;
    }

    public void setTipoFluido(String valorTipoFluido){
        tipoFluido = valorTipoFluido;
    }

    public String getTipoFluido(){
        return tipoFluido;
    }

    public void setCombustible(String valorCombustible){
        combustible = valorCombustible;
    }

    public String getCombustible(){
        return combustible;
    }   
}// Cierre de la clase Motor

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Ahora bien! Es importante que pruebes tu código, un buen programador nunca deja su código sin probar.

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".