Autor Tema: RESULTADO EJERCICIO CU00637B.Instrucción de selección condicional switch en Java  (Leído 4374 veces)

Papipanchi

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 38
    • Ver Perfil
Buenas tardes.

Adjunto ejercicio para que me digáis si está correcto. No he creado el método dimeTipoMotor() de forma independiente, he creado el switch dentro del método void setTipoMotor() de manera que al invocarlo y meter el dato se ejecuta directamente el switch y no tengo que invocarlo aparte. Lo he probado y funciona correctamente.
Código: [Seleccionar]

//Ejercicio unidad CU00637B

public class Motor {

    private int tipoBomba;
    private String tipoFluido;
    private String combustible;

    public Motor () {
        tipoBomba=0;
        tipoFluido="";
        combustible="";
    }

    public void setTipoBomba (int valorTipoBomba){
        tipoBomba=valorTipoBomba;
        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 bomba"); break;
        }
    }
   
        public void setTipoFluido(String valorTipoFluido) {
        tipoFluido=valorTipoFluido;
    }
   
    public void setCombustible (String valorCombustible) {
        combustible=valorCombustible;
    }
   
    public int getTipoBomba (){
        return tipoBomba;
    }
    public String getTipoFluido (){
        return tipoFluido;
    }
    public String getCombustible (){
        return combustible;
    }
}

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Hola papichanchi, tu código tiene partes buenas pero no es correcto por los siguientes razones:

- No cumples lo que pide el enunciado, que es crear un método tipo procedimiento denominado dimeTipoMotor()

- Un método set debe usarse solo para establecer el valor de un atributo, no debe usarse para otras cosas (cada método debe tener sus responsabilidades, no hay que mezclarlas). Piensa que es como si ves un cartel en la calle y pone "Pescadería", no tendría lógica que entres en la tienda y luego vendan carne. Por eso un método set (que significa establecer) no debe usarse para otras cosas.

Aunque tu código te funcione eso no significa que si te lo revisara un supervisor lo considerara bueno.

Salu2

Papipanchi

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 38
    • Ver Perfil
Gracias por responder a mi petición Ogramar.
Adjunto el ejercicio corregido a ver si de esta forma esta bien.
La verdad es que aun no tengo claro donde colocar un método dentro del código ni como denominarlo. La estructuración de una clase conforme se viene viendo desde el inicio del curso es la misma en casi todos los ejercicios y en eso no tengo problema, pero:

a) si se tiene que crear un método diferente a los habituales, por ejemplo éste del que tratamos, o uno para calcular un dato., se coloca después de todos los setter, o después de un set en concreto, o al final de los getter? La verdad que estoy un poco liado. Yo lo he colocado después del método setTipoBomba 

b) todos los métodos tipo procedimiento comienzan por la palabra clave void? 

Espero que me disipes en la medida de lo posible estas dudas que tengo.

Salu2


Código: [Seleccionar]
//Ejercicio unidad CU00637B

public class Motor {

    private int tipoBomba;
    private String tipoFluido;
    private String combustible;

    public Motor () {
        tipoBomba=0;
        tipoFluido="";
        combustible="";
    }

    public void setTipoBomba (int valorTipoBomba){
        tipoBomba=valorTipoBomba;
    }
    public void dimeTipoMotor (){//Metodo para que me diga el tipo motor en función del tipo de bomba
        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 bomba"); break;
        }
    }
   
            public void setTipoFluido(String valorTipoFluido) {
        tipoFluido=valorTipoFluido;
    }
   
    public void setCombustible (String valorCombustible) {
        combustible=valorCombustible;
    }
   
    public int getTipoBomba (){
        return tipoBomba;
    }
    public String getTipoFluido (){
        return tipoFluido;
    }
    public String getCombustible (){
        return combustible;
    }
}


Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Hola, ahora tú código está perfecto !!!


Para colocar nuevos métodos puedes colocarlos después de los métodos y set y métodos get. En este caso te quedaría

setTipoBomba ...
setTipoFluido ...
setCombustible ...

getTipoBomba ...
getTipoFluido ...
getCombustible ...

dimeTipoMotor

No es obligatorio pero así queda mejor ordenado.

Sobre los métodos tipo procedimiento es como tú has dicho: todos comienzan con void ...

Salu2!

Papipanchi

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 38
    • Ver Perfil
Muchas gracias de nuevo.

Con tu respuesta quedan aclaradas las dudas, lo que hará que a partir de ahora pueda realizar los ejercicios con mayor facilidad y de una forma mas ágil.

Un saludo.

 

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".