Foros aprenderaprogramar.com
		Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Zikem10 en 18 de Julio 2014, 02:56
		
			
			- 
				Buenas dia al intentar de darle return a motoresParaAgua e sale un error pero si se lo quito me dice que no tiene errores pero no me da de regreso el valor Booleano, que es lo que no estoy haciendo bien me dice "incompatibles Types". saludos
 
 //Ejercicio CU00638
 //Anexando al Programa Motor un Metodo boolean dimeSiMotorEsParaAgua
 //El objetivo es usar una Variable Local
 
 //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 Motor2{
 
 int tipoBomba;
 String tipoFluido, combustible;
 
 //constructor
 public Motor2(){
 
 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 para 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
 
 
 //Metodo dimeSiMotorEsParaAgua,usando una Variable Local
 
 void  dimeSiMotorEsParaAgua(){//No uso public ni private ya que la variable que se va a usar es Local.
 
 boolean motorEsParaAgua=true;
 
 
 if(tipoBomba==1){
 motorEsParaAgua=true;
 }//cierre if
 else {
 motorEsParaAgua=false;
 }//cierre else
 
 return motorEsParaAgua;
 
 
 
 }//cierre Metodo dimeSiMotorEsParaAgua
 
 //Metodos para obtener Valores
 public int getTipoBomba(){return tipoBomba;}
 public String getTipoFluido(){return tipoFluido;}
 public String getscombustible(){return combustible;}
 
 
 }//cierre Clase
 
- 
				Hola, para pegar código usa por favor el botón # del foro y pega el código entre las etiquetas [ code ] ... [ / code]
 
 En el código tienes mal esto: void  dimeSiMotorEsParaAgua()
 
 Si el método va a devolver algo no puedes poner void, tienes que poner lo que va a devolver, por ejemplo:
 
 public boolean dimeSiMotorEsParaAgua()
 
 No olvides poner public.
 
 Siempre tienes que pensar si el método va a devolver algo (en ese caso has de poner el tipo de lo que devuelve) o no ( en ese caso has de poner void)
 
 Saludos!
- 
				Queria poner un text junto al retun que dijera 
 " motorEsParaAgua ahora es " + motorEsParaAgua pero pude.. se puede hacer?
 
 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="";
 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;
 if (tipoBomba == 1) {
 motorEsParaAgua = true;
 tipoFluido= "agua" ;
 }
 return  motorEsParaAgua;
 
 
 
 }
 }
 
- 
				Un return devuelve una sola cosa, por ejemplo un valor numérico, o un valor de cadena de texto, o un valor booleano. Si motorEsParaAgua es booleano, no puedes hacer return "Ahora motor es para agua es"+motorEsParaAgua
 
 Porque estarías mezclando cosas.
 
 Lo que puedes hacer si quieres es escribir:
 
 System.out.println ("motorEsParaAgua vale: "+motorEsParaAgua);
 return motorEsParaAgua;
 
 Aquí primero muestras el mensaje y luego haces el return del método.
 
 De todas formas esto no es muy recomendable, porque estarías mezclando cosas dentro de lo que hace un método y un método sólo debe hacer una cosa. Los mensajes sólo debes mostrarlos si los pide el enunciado del ejercicio.
 
 Salu2