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