Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: momo en 30 de Agosto 2014, 19:28

Título: ENTREGA:CU00638B métodos tipo función java
Publicado por: momo en 30 de Agosto 2014, 19:28
Bueno Aquí les dejo el ejercicio de la entrega  CU00638B el cual dice lo siguiente :



/*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 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.

Código: [Seleccionar]
public class Motor1
  {
      int tipoBomba;
      String tipoFluido,combustible;
     
      public Motor1()
      {
          tipoBomba=0;
          tipoFluido="";
          combustible="";
       
       }
      public void setBomba(int valorBomba)
       {
           tipoBomba=valorBomba;
        }
      public void setFluido(String valorTipoFluido)
        {   
            tipoFluido=valorTipoFluido;           
        }
      public void setCombustible(String valorCombustible)
      {
          combustible=valorCombustible;
       }
     
       public boolean dimeSiMotorEsParaAgua()
       {
           boolean motorparaagua=false;         
           if(tipoBomba==1)
           {
               motorparaagua=true;
               System.out.println("Motor para agua es " + motorparaagua);
           }else if(tipoBomba==0)
           {   
             
               System.out.println("Motor para agua es " + motorparaagua );
           }
           return motorparaagua;
       
       }
       public int getBomba(){return tipoBomba;}
       public String getFluido(){return tipoFluido;}
       public String getCombustible(){return combustible; }
    }


NOTA: Por favor dime si cumplo con lo que pide el ejercicio es que no lo entendí muy bien. ahhh   y me dicen si tengo algún otro detalle como las declaraciones de las variables  que siempre tengo algunos problemas con ella
Título: Re:ENTREGA:CU00638B
Publicado por: dongo en 31 de Agosto 2014, 11:25
Hola en cuanto a sintáctica esta totalmente correcto.

Por otro lado, en la semántica fallas en algunos puntos, por ejemplo:


Después en los métodos getters y setters fallas en la definición del nombre también fallas.

A ver tu a los atributos los has llamado tipoBomba y tipoFluido, hasta aquí bien. Pero cuando creas los getter y setters, nombras a estos getBomba, getFluido, setBomba, setFluido. Esto no se adapta a la especificación que java y desarrolladores avanzados recomiendan.

La recomendación es que los métodos getter y setter se llamen igual que el atributo al cual están asociados, precedidos por la palabra set o get según sea el caso y utilizando camel case(Primera letra en mayúsculas de cada palabra).

Por lo tanto si tu has llamado a los atributos  tipoBomba y tipoFluido, para que tu código se adapte a los estándares, sus métodos getters y setters respectivos, deberían llamarse getTipoBomba(), getTipoFluido(), setTipoBomba(...), setTipoFluido(...).

Esto ahora mismo a tu nivel no tiene mucha importancia, pero en el futuro, si te metes a trabajar con algún framework(hibernate, jsf, spring, ...) te van a exigir que tengas esos métodos y ademas con esa convención de nombres.

Si esto te cuesta mientras estas desarrollando, yo te recomiendo que tengas en una libretita todas estas normas de la convención  de nombres:
Y no se si me dejo alguna... En fin, tras acabar el ejercicio te recomiendo que lo repases y veas que estas normas se cumplen, poco a poco iras haciéndolo de forma automática.

Bueno un saludo!
Título: Re:ENTREGA:CU00638B
Publicado por: momo en 31 de Agosto 2014, 18:21
Muchas Gracias Amigo y si lo anotare siempre son esos los detalles que me cuestan