Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Papipanchi en 30 de Noviembre 2014, 16:57

Título: RESULTADO EJERCICIO CU00637B.Instrucción de selección condicional switch en Java
Publicado por: Papipanchi en 30 de Noviembre 2014, 16:57
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;
    }
}
Título: Re:RESULTADO EJERCICIO CU00637B.Instrucción de selección condicional switch en Java
Publicado por: Ogramar en 02 de Diciembre 2014, 13:28
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
Título: Re:RESULTADO EJERCICIO CU00637B.Instrucción de selección condicional switch en Java
Publicado por: Papipanchi en 03 de Diciembre 2014, 22:45
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;
    }
}

Título: Re:RESULTADO EJERCICIO CU00637B.Instrucción de selección condicional switch en Java
Publicado por: Ogramar en 04 de Diciembre 2014, 12:13
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!
Título: Re:RESULTADO EJERCICIO CU00637B.Instrucción de selección condicional switch en Java
Publicado por: Papipanchi en 04 de Diciembre 2014, 12:21
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.