Dúvida no retorna da operação boolean estaAberta() {}?
6 respostas
diegohsi
Pessoal, estou com uma dúvida muito simples, minha operação boolean estaAberta() {} verifica se a porta esta aberta ou nao dai quando imprimo na classe TestePorta aparece o retorno true/false. Gostaria de saber se estou fazendo algo errado e como devo proceder para não apresentar o valor booleano no main(). A minha operação deve ser boolean e não void.
packagefixando_conhecimento_414_pag60;publicclassPorta{Stringcor;booleanaberta;floatdimensaoX;floatdimensaoY;floatdimensaoZ;voidabre(){this.aberta=true;}voidfecha(){this.aberta=false;}voidpinta(Strings){this.cor=s;}booleanestaAberta(){if(this.aberta==true){System.out.println("Porta aberta.");returntrue;}else{System.out.println("Porta fechada.");returnfalse;}}voidmostra(){System.out.println("Largura da porta: "+this.dimensaoX+"m");System.out.println("Altura da porta: "+this.dimensaoY+"m");System.out.println("Espessura da porta: "+this.dimensaoZ+"m");System.out.println("Cor da porta: "+this.cor);System.out.println(estaAberta());}}
Pessoal, estou com uma dúvida muito simples, minha operação boolean estaAberta() {} verifica se a porta esta aberta ou nao dai quando imprimo na classe TestePorta aparece o retorno true/false. Gostaria de saber se estou fazendo algo errado e como devo proceder para não apresentar o valor booleano no main(). A minha operação deve ser boolean e não void.
packagefixando_conhecimento_414_pag60;publicclassPorta{Stringcor;booleanaberta;floatdimensaoX;floatdimensaoY;floatdimensaoZ;voidabre(){this.aberta=true;}voidfecha(){this.aberta=false;}voidpinta(Strings){this.cor=s;}booleanestaAberta(){if(this.aberta==true){System.out.println("Porta aberta.");returntrue;}else{System.out.println("Porta fechada.");returnfalse;}}voidmostra(){System.out.println("Largura da porta: "+this.dimensaoX+"m");System.out.println("Altura da porta: "+this.dimensaoY+"m");System.out.println("Espessura da porta: "+this.dimensaoZ+"m");System.out.println("Cor da porta: "+this.cor);System.out.println(estaAberta());}}
realmente, se o seu método for do tipo Boolean, ele irá retornar true/false.
Existem várias formas de resolver seu problema, uma delas é implementar o método
estaAberta(); como sendo do tipo String.
Daí quando você quiser saber a situação da porta já sabe né, só dá um System.out.Println("getSituacao()");
diegohsi
Certo Augusto, sei que utilizar metodos public get e set são de boas praticas, estou seguindo a apostila da caelum e estou fazendo os exercicios, mais vcs me sanaram a dúvida que era se havia alguma forma de retornar apenas o SysOut. Obrigado vlw
augustocolom
Hum, que bom que conhece… então entra como mais uma forma para resolver o exercício.
D
diego.hordi
O “sysout” é apenas para saída de dados em um stream - tipicamente o console -, e retorna um PrintStream. Recomendo utilizar uma expressão ternária mesmo para modificar uma string de “aberta” para “fechada”, se entendi bem o seu problema.