Autor Tema: revision Ejercicio CU00637B Switch java  (Leído 4554 veces)

Zikem10

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
revision Ejercicio CU00637B Switch java
« en: 17 de Julio 2014, 07:03 »
Buen dia quisiera que me lo revisaran mi codigo.
Gracias

Código: [Seleccionar]
//Programa Motor y utilizacion de la instruccion Switch(Siempre se usa y se espera Variables tipo int o char)
//Ejercicio CU00637B
//Programa Hecho por Osvaldo Maciel Julio 16 2014


public class Motor{
   
 int tipoBomba;
 int motor;
 String tipoFluido, combustible;
 
 //constructor
 public Motor(){
     motor=0;
     tipoBomba=0;
     tipoFluido="";
     combustible="";
    }//cierre constructor
   
    //Metodos para establecer valores de atributos
    public void setTipoBomba(int ValorTipoBomba){//1
    tipoBomba=ValorTipoBomba;
    }//1.1

    public void setTipoFluido(String ValorTipoFluido){//2
        tipoFluido=ValorTipoFluido;
    }//2.2
   
    public void setCombustible(String ValorCombustible){//3
        combustible=ValorCombustible;
    }//3.3
   
    //Metodos para obtener Valores
    public int getTipoBomba(){return tipoBomba;}
    public String getTipoFluido(){return tipoFluido;}
    public String getscombustible(){return combustible;}
    public int getTipoMotor(){return motor;}
    //Incisos del Ejercicios
    //Metodo dimeTipoMotor
   
    public void setdimeTipoMotor(int ValorMotor){//4
       
        motor=ValorMotor;
   
        switch(motor){//5
            case 0:
            System.out.println("No hay establecido un valor definido pra 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 hormigon");
            break;
           
            case 4:
            System.out.println("La bomba es una bomba de pasta alimenticia");
            break;
           
            default:
            System.out.println("No existe un valor valido para tipo de bomba");
            break;
        }//5.5
       
    }//4.4
   
   
   
}//cierre Clase
« Última modificación: 31 de Agosto 2014, 18:58 por Alex Rodríguez »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:revision Ejercicio CU00637B Switch
« Respuesta #1 en: 17 de Julio 2014, 09:45 »
Hola, tienes el código bien menos el método setdimeTipoMotor donde hay algunos errores.

El primer error es el nombre del método, no debe ser setdimeTipoMotor porque set es un prefijo que indica que el método es para establecer el valor de un atributo (información) de la clase. En este caso no es para establecer el valor de un atributo sino para hacer una comprobación, el nombre del método debe ser tal como dice el enunciado <<Crea un método tipo procedimiento denominado dimeTipoMotor() >>

Otro error es que pongas un parámetro para el método:

   public void setdimeTipoMotor(int ValorMotor){//4
       
        motor=ValorMotor;
   
        switch(motor){//5

Esto no es correcto. Se trata de que el objeto tendrá una información (que contiene él mismo) almacenada. Si la información está almacenada no hay que pasársela como parámetro al método, ya que se puede recuperar sin necesidad de recibirla como parámetro.

Por tanto debes basarte en la información almacenada en el objeto así:

 public void dimeTipoMotor(){
     switch (tipoBomba){


Haciendo esas correcciones ya lo tendrías todo bien. Saludos!

Zikem10

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Re:revision Ejercicio CU00637B Switch
« Respuesta #2 en: 17 de Julio 2014, 23:47 »
Gracias vi mi error de querer llamar a un nuevo metodo sin darme cuenta que la info que se require ya previamente fue solicitada y almacenada, ya me corrio bien y el problema principal es que no habia seguido un orden el cual debe de ser, Crear metodos Setters, depues aui los metodos de comparacion o metodos que requieran la informacion de Setters y ya despues los Metodos Getters, ya que si no sigo ese esquema u Orden no funciona el programa como debe.

aqui ya dejo correjido mi programa

Código: [Seleccionar]
//Programa Motor y utilizacion de la instruccion Switch(Siempre se usa y se espera Variables tipo int o char)
//Ejercicio CU00637B
//Programa Hecho por Osvaldo Maciel Julio 16 2014, Corregido Julio 17 2014


public class Motor{
   
 int tipoBomba;
 int motor;
 String tipoFluido, combustible;
 
 //constructor
 public Motor(){
   
     tipoBomba=0;
     tipoFluido="";
     combustible="";
    }//cierre constructor
   
    //Metodos para establecer valores de atributos
    public void setTipoBomba(int ValorTipoBomba){//1
    tipoBomba=ValorTipoBomba;
    }//1.1

    public void setTipoFluido(String ValorTipoFluido){//2
        tipoFluido=ValorTipoFluido;
    }//2.2
   
    public void setCombustible(String ValorCombustible){//3
        combustible=ValorCombustible;
    }//3.3
   
   
    //Incisos del Ejercicios
    //Metodo dimeTipoMotor
   
    public void dimeTipoMotor(){//4
        //No uso SET en dimeTipoMotor porque no voy a solicitar informacion en Teclado ya que la informacion
        //que requiero es la de la bomba y esa informacion ya la tengo almacenada cuando declare el metodo
        //setTipoBomba, por lo tanto solo lo mando llamar,y por eso tampoco requiero Parametros
       
        //Con este metodo solo estoy utilizando la informacion que ya tenia almacenada en tipoBomba
        //lo que hago aqui es solo utlizar esa informacion en el momento que yo quiera con este metodo
        //si escogo tipoBomba en mi objeto con el numero 2 no hace nada solo la almacena con esa informacion y
        //en el atributo del objeto llamado void dimeTipoBomba jala la info. y la lleva al numero de case correspondiente deacuerdo al numero que apreto y quedo guardado
   
        switch(tipoBomba){//5
            case 0:
            System.out.println("No hay establecido un valor definido pra el tipo de bomba");
            break;
           
            case 1:
            System.out.println("La bomba es una bomba de agua");
            break;//Si quito los Breaks el programa corre hasta encontrar el primer 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 hormigon");
            break;
           
            case 4:
            System.out.println("La bomba es una bomba de pasta alimenticia");
            break;
           
            default:
            System.out.println("No existe un valor valido para tipo de bomba");
            break;
        }//5.5
       
    }//4.4
   
    //Metodos para obtener Valores
    public int getTipoBomba(){return tipoBomba;}
    public String getTipoFluido(){return tipoFluido;}
    public String getscombustible(){return combustible;}
    public int getTipoMotor(){return motor;}
   
}//cierre Clase

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:revision Ejercicio CU00637B Switch
« Respuesta #3 en: 18 de Julio 2014, 10:10 »
Ahora sí está correcto. En el código sí puedes alterar el orden (es decir, puedes poner los getters y los setters delante o detrás que te va a funcionar igual). Lo que sí debes hacer es cuando vayas a probar el programa, primero establecer el valor de los atributos invocando los métodos set sobre los objetos creados en BlueJ para después invocar otros métodos, si no lo haces así el objeto no tiene valores de atributos y los otros métodos no responderán bien. 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".