Autor Tema: Ejercicio CU00638B un método una tarea java  (Leído 3169 veces)

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Ejercicio CU00638B un método una tarea java
« en: 17 de Junio 2014, 15:01 »
Hola envío el ejercicio CU00638B para revisión.
Agradecería comentarios en cualquier sentido.

Código: [Seleccionar]
/**
 * Descripción de la clase.
 *
 * @author (Toni)
 * @version (0)
 */
public class Motor
{
    // Variables de la intancia
    int tipoBomba;
    String tipoFluido;
    String combustible;

    /**
     * Constructor para objetos de la clase Motor
     */
    public Motor()
    {
        // Inicializa variables
        tipoBomba = 0;
        tipoFluido = "No hay establecido un valor definido para el tipo de bomba";
        combustible = "DesConocido";
    }

    // A continuación los métodos setters.
    public void setTipoBomba ( int valorTipoBomba ) {
        tipoBomba = valorTipoBomba;
        setTipoFluido ();
    }

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

    private void setTipoFluido () {
        switch ( tipoBomba ) {
            case 0:
            tipoFluido = "No hay establecido un valor definido para el tipo de bomba";
            break;

            case 1:
            tipoFluido = "La bomba es una bomba de agua";
            break;

            case 2:
            tipoFluido = "La bomba es una bomba de gasolina";
            break;

            case 3:
            tipoFluido = "La bomba es una bomba de hormigón";
            break;

            case 4:
            tipoFluido = "La bomba es una bomba de pasta alimenticia";
            break;

            default:
            tipoFluido = "No existe un valor válido para este tipo de bomba";
            break;
        } // fin. switch
    }

    // A continuación los métodos getters
    public int getTipoBomba () { return tipoBomba; }

    public String getTipoFluido () { return tipoFluido; }

    public String getCombustible () { return combustible; }

    // A continuación métodos varios
    public void dimeTipoMotor ( String quienLoPregunta ) {
        System.out.println ( "Hola " + quienLoPregunta +  ", mira. " + tipoFluido +
            ", y usa como combustible: " + combustible + "." );
        if ( dimeSiMotorEsParaAgua () == true ) {
            System.out.println ("Ah. Si el agua es para riego, hay que añadir el fertilizante." );
        }
    }// fin del procedimiento con un parámetro

    private boolean dimeSiMotorEsParaAgua () {
        boolean motorEsParaAgua = false;
        if ( tipoBomba == 1 ) {
            motorEsParaAgua = true;
        }
        return motorEsParaAgua;
    }
}// fin de la clase

« Última modificación: 02 de Septiembre 2014, 18:14 por Alex Rodríguez »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Ejercicio CU00638B
« Respuesta #1 en: 17 de Junio 2014, 17:13 »
Todo parece que está bien, incluso veo que has introducido algunos toques "creativos", lo que deja claro que comprendes bien lo que estás haciendo. Lo más discutible en este código es este fragmento:

    public void setTipoBomba ( int valorTipoBomba ) {
        tipoBomba = valorTipoBomba;
        setTipoFluido ();
    }

Aquí se contraviene el principio de que un método se encargue de una tarea. Normalmente un método hace una cosa concreta: si establece el tipo de bomba no establece el tipo de fluido por ejemplo. Aunque en este caso concreto podría considerarse aceptable si consideras que el tipo de fluido depende del tipo de bomba. Pero si fuera así no te harían falta dos atributos de la clase, te bastaría un atributo y un método para poder saber el otro parámetro. En resumen está correcto pero cuando crees programas debes tener en cuenta el principio un método una tarea.

Saludos
Responsable de departamento de producción aprenderaprogramar.com

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00638B
« Respuesta #2 en: 17 de Junio 2014, 21:11 »
Hola César, gracias por tu comentario.

Si, ahora que lo dices en tu nota, si, no había tenido en cuenta esa norma de < un método una tarea >.
Reconozco que me venía muy bien ponerlo todo junto. Pero tomo nota para el futuro.

Gracias.
Sal U2

 

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