Autor Tema: Java constructor asignando valores de defecto a atributos Ejercicio CU00637B  (Leído 5387 veces)

Angel_M05

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 12
    • Ver Perfil
Enunciado:

Citar
Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Motor (que representa el motor de una bomba para mover fluidos). Define una clase Motor considerando los siguientes atributos de clase: tipoBomba (int), tipoFluido (String), combustible (String). Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos. Crea un método tipo procedimiento denominado dimeTipoMotor() donde a través de un condicional switch hagas lo siguiente:

a) Si el tipo de motor es 0, mostrar un mensaje por consola indicando “No hay establecido un valor definido para el tipo de bomba”.

b) Si el tipo de motor es 1, mostrar un mensaje por consola indicando “La bomba es una bomba de agua”.

c) Si el tipo de motor es 2, mostrar un mensaje por consola indicando “La bomba es una bomba de gasolina”.

d) Si el tipo de motor es 3, mostrar un mensaje por consola indicando “La bomba es una bomba de hormigón”.

e) Si el tipo de motor es 4,mostrar un mensaje por consola indicando “La bomba es una bomba de pasta alimenticia”.

f) Si no se cumple ninguno de los valores anteriores mostrar el mensaje “No existe un valor válido para tipo de bomba”.


Respuesta:

Código: [Seleccionar]
public class Motor
{
    // instance variables - replace the example below with your own
    private int tipoBomba;
    private String tipoFluido;
    private String combustible;
    /**
     * Constructor for objects of class Motor
     */
    public Motor()
    {
        // initialise instance variables
        tipoBomba=0;
        tipoFluido="";
        combustible="";
    }

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

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

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

    public int getTipoBomba(){ return tipoBomba;}

    public String getTipoFluido(){ return tipoFluido;}

    public String getCombustible(){ return combustible;}
public void dimeTipoMotor(int tipoBomba){
   
    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;
       
}

}
}
« Última modificación: 26 de Junio 2015, 19:05 por Alex Rodríguez »

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:Ejercicio CU00637B switch en Java (condicional de selección).
« Respuesta #1 en: 23 de Junio 2015, 21:44 »
Hola Angel.

Veo bien tu trabajo pero igualmente me gustaría hacerte algunas observaciones para mejorar el código:

Respecto de los métodos set. En el siguiente método:

Código: [Seleccionar]
public void setTipoFluido(String tipoFluido){
        tipoFluido=tipoFluido;
    }

no sería correcto hacer la asignación:

Código: [Seleccionar]
tipoFluido=tipoFluido;
¿por qué? porque ya que tanto el parámetro recibido, como el campo de instancia tienen el mismo nombre al compilador le surgiría la siguiente pregunta: ¿quién asigna a quién?
Nosotros podemos tener muy en claro en nuestro pensamiento que lo que pretendemos hacer es que el campo de instancia reciba el valor del parámetro, pero cómo lo sabría el compilador al encontrarse con:

Código: [Seleccionar]
tipoFluido=tipoFluido;
Entonces: más adelante en el curso se estudiará el uso de la sentencia "this" que viene a resolver un poco esto, pero por el momento recodifiquemos el método de la siguiente manera:

Código: [Seleccionar]
public void setTipoFluido(String valorTipoFluido){
        tipoFluido=valorTipoFluido;
    }

(Debes realizar la misma corrección para el método setCombustible).

Respecto del método dimeTipoMotor(). Te voy a hacer la misma observación que te hice en el ejercicio anterior: este método debe utilizar el campo de instancia tipoBomba del propio objeto. Por ello debe ser un método que no reciba parámetros, y use el campo tipoMotor que se ha estabecido con el método set previamente.

Código: [Seleccionar]
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;
       
}

}

Analízalo y cualquier duda estamos aquí para ayudarte.

 

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