Autor Tema: Ejercicio CU00638B ejemplo método tipo función java  (Leído 6280 veces)

jaivcaba

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
Ejercicio CU00638B ejemplo método tipo función java
« en: 12 de Septiembre 2014, 07:27 »
Adjunto mi código, Gracias

Código: [Seleccionar]
/**
 * Write a description of class Motor here.
 *
 * @author (jaivcaba)
 * @version (12/09/2014)
 */
public class Motor
{
    // instance variables - replace the example below with your own
    private int tipoBomba;
    private String tipoFluido;
    private String combustible;
    private int tipoMotor;

    /**
     * Constructor for objects of class Motor
     */
    public Motor()
    {
        // initialise instance variables
        tipoBomba= 0;
        tipoFluido= "Sin Asignar";
        combustible= "Sin Asignar";
        tipoMotor= 0;
    }

    public void setTipoBomba ( int decirTipoBomba){
        tipoBomba = decirTipoBomba;
    }
    public void setTipoFluido ( String decirTipoFluido){
        tipoFluido= decirTipoFluido;
    }
    public void setCombustlible ( String decirCombustible){
        combustible= decirCombustible;
    }
    public void setTipoMotor (int decirTipoMotor){
        tipoMotor = decirTipoMotor;
    }
       
    public boolean dimeSiEsMotorParaAgua(){
        boolean MotorEsParaAgua = false;
        if (tipoMotor == 1){MotorEsParaAgua = true;}
        return MotorEsParaAgua;
    }
   
    public int getTipoBomba (){return tipoBomba;}
    public int getTipoMotor (){return tipoMotor;}
    public String getTipoFluido (){return tipoFluido;}
    public String getCombustible (){return combustible ;}
   
    }
« Última modificación: 13 de Septiembre 2014, 10:22 por César Krall »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00638B
« Respuesta #1 en: 12 de Septiembre 2014, 08:29 »
Hola jaivcaba
Igual que en el ejercicio anterior tu código es correcto.

Verás que tienes un método

public void setCombustlible ( String decirCombustible)

Funcional al 100%, pero cuyo nombre (un error de tipeado) puede dar lugar a errores futuros. Si en un futuro tu quieres llamar a este método de memoria, seguramente lo llamarás escribiendo:

setCombustible("Gasolina")

Y esta llamada te dará error pues java no encontrará un método que se llame así, y tu te romperas la cabeza diciendo que no es posible.
Hasta que encuentres el error y te alegres que sea una tonteria

Aprovechando tu código, quiero proponerte que le des vida a tu clase Motor
Tu método

public boolean dimeSiEsMotorParaAgua()

Solo devuelve true o false, tal como se exigía en el ejercicio.
Yo te propongo que aproveches el valor devuelto por este método, para que otro método nuevo, informe al usuario presentando un mensaje como:

Si señor, este motor es para bombear agua
O
No, este motor no bombea agua.

O algún mensaje por el estilo, a tu criterio.

Ahi queda eso.
Saludos

jaivcaba

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
Re:Ejercicio CU00638B ejemplo método tipo función java
« Respuesta #2 en: 14 de Septiembre 2014, 07:46 »
que tal así?  :D... Gracias por tus comentarios me son de gran ayuda

Código: [Seleccionar]
/**
 * Write a description of class Motor here.
 *
 * @author (jaivcaba)
 * @version (12/09/2014)
 */
public class Motor
{
    // instance variables - replace the example below with your own
    private int tipoBomba;
    private String tipoFluido;
    private String combustible;
    private int tipoMotor;

    /**
     * Constructor for objects of class Motor
     */
    public Motor()
    {
        // initialise instance variables
        tipoBomba= 0;
        tipoFluido= "Sin Asignar";
        combustible= "Sin Asignar";
        tipoMotor= 0;
    }

    public void setTipoBomba ( int decirTipoBomba){
        tipoBomba = decirTipoBomba;
    }
    public void setTipoFluido ( String decirTipoFluido){
        tipoFluido= decirTipoFluido;
    }
    public void setCombustible ( String decirCombustible){
        combustible= decirCombustible;
    }
    public void setTipoMotor (int decirTipoMotor){
        tipoMotor = decirTipoMotor;
    }
       
    public boolean dimeSiEsMotorParaAgua(){
        boolean MotorEsParaAgua = false;
        if (tipoMotor == 1){
        System.out.println("si, el motor es para agua");
        MotorEsParaAgua = true;
        }else{
        System.out.println("no, este motor no es para agua");
        }
        return MotorEsParaAgua;
    }
   
    public int getTipoBomba (){return tipoBomba;}
    public int getTipoMotor (){return tipoMotor;}
    public String getTipoFluido (){return tipoFluido;}
    public String getCombustible (){return combustible ;}
   
    }

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00638B ejemplo método tipo función java
« Respuesta #3 en: 14 de Septiembre 2014, 21:05 »
Hola jaivcaba
En parte si, no me has entendido bien.
El método

dimeSiEsMotorParaAgua()

Solo ha de devolver true o false. El que presente los mensajes será otro.
¿Porque tantos métodos para el mismo trabajo?

En ejercicios anteriores os hemos pedido presentar mensajes dentro de los métodos set y get.
El propósito era para que vierais que cuando cambiais un atributo con su método set, el mensaje os dijera. He mira, acabas de pasar por aquí y has cambiado este atributo.
Pero el único propósito de un método set, es cambiar un atributo y nada más.

De la misma forma

dimeSiEsMotorParaAgua()

Es un método que solo devolverá un booleano y tu decidiras que quieres hacer con ello, tomar decisiones o presentar mensajes pero en un método dintinto.

Ejemplo. Más adelante, necesitas que esta clase haga más cosas.
Una de ellas puede ser que según el tipo de bomba 0,1,2, etc. quieras dar más información al usuario del programa.
Así, dentro de ese nuevo método una parte del código puede ser:

...
if (dimeSiEsMotorParaAgua()) {
    System.out.println("Ah. Y este lo puede usar para regar la plantación.");
} else {
    System.out.pritnln("No. No puede ser, no está preparada para bombear agua");
}
...

Si el método
dimeSiEsMotorParaAgua()
da true, se presenta el primer mensaje, en caso contrario el segundo.

Espero que haya quedado más claro. De todas formas, cosas como esta las veremos a lo largo del curso. ;)

Saludos

jaivcaba

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
Re:Ejercicio CU00638B ejemplo método tipo función java
« Respuesta #4 en: 14 de Septiembre 2014, 22:17 »
Gracias por tus comentarios.. tienes razón, yo lo que hice fue modificar el método ya existente para que mostrara los mensajes, mas no crear un nuevo método. Me he basado en tu ejemplo y lo he hecho así.

Código: [Seleccionar]
/**
 * Write a description of class Motor here.
 *
 * @author (jaivcaba)
 * @version (12/09/2014)
 */
public class Motor
{
    // instance variables - replace the example below with your own
    private int tipoBomba;
    private String tipoFluido;
    private String combustible;
    private int tipoMotor;

    /**
     * Constructor for objects of class Motor
     */
    public Motor()
    {
        // initialise instance variables
        tipoBomba= 0;
        tipoFluido= "Sin Asignar";
        combustible= "Sin Asignar";
        tipoMotor= 0;
    }

    public void setTipoBomba ( int decirTipoBomba){
        tipoBomba = decirTipoBomba;
    }
    public void setTipoFluido ( String decirTipoFluido){
        tipoFluido= decirTipoFluido;
    }
    public void setCombustible ( String decirCombustible){
        combustible= decirCombustible;
    }
    public void setTipoMotor (int decirTipoMotor){
        tipoMotor = decirTipoMotor;
    }
       
    public boolean dimeSiEsMotorParaAgua(){
        boolean MotorEsParaAgua = false;
        if (tipoMotor == 1){
                MotorEsParaAgua = true;
            }
        return MotorEsParaAgua;
    }
   
    public void queSucede (){
        if (dimeSiEsMotorParaAgua()){
            System.out.println("si, el motor es para agua");
        }else{
            System.out.println("no, este motor no es para agua");
        }
        }
   
    public int getTipoBomba (){return tipoBomba;}
    public int getTipoMotor (){return tipoMotor;}
    public String getTipoFluido (){return tipoFluido;}
    public String getCombustible (){return combustible ;}
   
    }

Aunque funciona... no logro entender muy bien como funciona el código, es decir como java lee el algoritmo. te explico porque.

en
public boolean dimeSiEsMotorParaAgua(){
        boolean MotorEsParaAgua = false;
        if (tipoMotor == 1){
                MotorEsParaAgua = true;
            }
        return MotorEsParaAgua;

Yo entiendo que java interpreta: ok hay una variable local (motorEsParaAgua), entonces si tipoMotor es igual a 1, entonces la variable local toma el valor de "true", y si no pues por defecto esta en "false" entonces muestro (return) el valor que esta tome.
 
En

if (dimeSiEsMotorParaAgua()){
            System.out.println("si, el motor es para agua");
        }else{
            System.out.println("no, este motor no es para agua");
        }

no se como leerlo, podrian ayudarme.

Gracias.





 

aleexx1724

  • Principiante
  • **
  • Mensajes: 73
  • Ayuda con Java
    • Ver Perfil
Re:Ejercicio CU00638B ejemplo método tipo función java
« Respuesta #5 en: 15 de Septiembre 2014, 02:09 »
hola jaivcaba

yo tambien tube ese problema, bien te lo explicare  como yo lo entendi

el tipoBomba define que tipo de motor es .Por lo tanto seria


boolean motorEsParaAgua=false;

  if(tipoBomba==1){
 motorEsparaAgua=true;

}
megustaria aprender a programar en java tengo pocotiempo con esto de la programacion pero me gusta  mucho ,estoy buscando amig@s que  tambien esten aprendiendo o que sepan y puedan enseñar online ,
saludos

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00638B ejemplo método tipo función java
« Respuesta #6 en: 15 de Septiembre 2014, 08:23 »
Si jaivcaba
Tu método

dimeSiEsMotorParaAgua()

Tiene un if con su condición encerrada entre paréntisis

(dimeSiEsMotorParaAgua())

Si la condición del if es verdadera, se ejecuta  el primer bloque de sentencias del if, en caso contrario se ejecutan las sentencias del else.

Para que lo entiendas, tu sustituyes la llamada que haces a

dimeSiEsMotorParaAgua()

Por el valor que devuelve, que será o true o false, los únicos valores boolean

Así, simplificando tu tendrás el if así:

1 if (TRUE){
2           System.out.println("si, el motor es para agua");
3        }else{
4           System.out.println("no, este motor no es para agua");
5      }

Cuando la condición del if es TRUE, se ejecuta la siguiente línea 2

1if (FALSE){
2           System.out.println("si, el motor es para agua");
3      }else{
4         System.out.println("no, este motor no es para agua");
5    }

Cuando la condición del if es FALSE la ejecución del código salta a la línea 3 donde el programa lee: En cualquier otro caso (else) ejecuta las siguientes instrucciones.

Y se acabó.

¿Se entiende mejor ahora?

Guille

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 15
    • Ver Perfil
Re:Ejercicio CU00638B ejemplo método tipo función java
« Respuesta #7 en: 03 de Octubre 2014, 22:11 »
Algo asi haria

Código: [Seleccionar]
public class Motor_Ejercicio_class38
{
    // instance variables - replace the example below with your own
    private int tipoBomba;
    private String tipoFluido,combustible;

    /**
     * Constructor for objects of class Motor_Ejercicio_class38
     */
    public Motor_Ejercicio_class38()
    {
        // initialise instance variables
        tipoBomba=0;
        tipoFluido="No asignado aun";
        combustible="";

    }

    //Setters
    public void setTipoBomba( int ValorTipoBomba )
    {
        tipoBomba=ValorTipoBomba;
    }

    public void setTipoFluido( String ValorTipoFluido )  {

        tipoFluido=ValorTipoFluido;
    }

    public void setCombustible( String ValorCombustible )  {

        combustible=ValorCombustible;
    }

    // Getters

    public int getTipoBomba( ) { return    tipoBomba;}

    public String getTipoFluido( ) { return    tipoFluido;}

    public String getCombustible( ) { return    combustible;}

    /*Crea un método
    tipo función que devuelva un booleano (true o false) denominado dimeSiMotorEsParaAgua()
    donde se cree una variable local booleana motorEsParaAgua de forma que si el tipo de
    motor tiene valor 1 tomará valor true y si no lo es tomará valor false. El método
    debe devolver la la variable local booleana motorEsParaAgua.
     */

    public boolean dimeSiMotorEsParaAgua() {
        boolean motorEsParaAgua =false;

       
        // ya sea el fluido agua o la bomba tipo 1 se asignan los valores a fluido y bomba
        if (tipoBomba == 1||tipoFluido=="agua" ){
            motorEsParaAgua = true;
            tipoFluido= "agua" ;
            tipoBomba=1;
        }

        return  motorEsParaAgua;

    }

   
    public void queSucede (){
        if (dimeSiMotorEsParaAgua()){
            System.out.println("si, el motor es para agua el fluido movido es: " + tipoFluido);
        }else{
            System.out.println("no, este motor no es para agua el fluido movido es: " + tipoFluido);
        }
    }
}

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00638B ejemplo método tipo función java
« Respuesta #8 en: 04 de Octubre 2014, 22:22 »
Hola Guille
Tu ejercicio está bastante bien

Aunque tengo un pero:
en el método
public boolean dimeSiMotorEsParaAgua()
cambias el valor de los atributos tipoFluido y tipoBomba
Ya debías saber que los atributos solo se cambian  en sus métodos 'set'. Si también lo haces en otros métodos, estás trabajando a tus espaldas

Sin embargo, veo que además de lo que pide el ejercicio has creado el método
public void queSucede ()
Donde usas la respuesta del método solicitado
public boolean dimeSiMotorEsParaAgua()
para escoger el mensaje adecuado

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