class Porta
{
boolean aberta = false;
String cor = "";
double dimensaoy = 0.0,dimensaox = 0.0,dimensaoz = 0.0;
void Abre(){
System.out.println(" PORTA ABERTA!");}
void Fecha(){
System.out.println("PORTA FECHADA!");}
void Pinta(String s){
this.cor = s;
System.out.println("COR DA PORTA:" + this.cor);}
boolean EstaAberta(){
boolean x = this.Abre(); // metodo boolean não aceita essa metodo void ;
if ( x == false)
{ this.aberta = false;
}
else
this.aberta = true;
return this.aberta ;
}
}
[ RESOLVIDO] Como faço para usar um metodo void dentro de um metodo boolean?
7 Respostas
Dei uma arrumada no teu codigo.
Acho que isso resolve:
public class Porta {
private boolean aberta = false;
private String cor = "";
private double dimensaoy = 0.0, dimensaox = 0.0, dimensaoz = 0.0;
public boolean Abre() {
System.out.println(" PORTA ABERTA!");
boolean retorno = true;
return retorno;
}
public void Fecha() {
System.out.println("PORTA FECHADA!");
}
public void Pinta(String s) {
this.cor = s;
System.out.println("COR DA PORTA:" + this.cor);
}
public boolean EstaAberta() {
boolean x = this.Abre(); // metodo boolean não aceita essa metodo void ;
if(x == false) {
this.aberta = false;
} else
this.aberta = true;
return this.aberta;
}
}
Boa tarde.
Mas é claro que não aceita. Métodos void não retornam valores, como você espera armazenar um valor booleano atribuindo a eles um método void.
Aliás acho que esta sua lógica está um pouco complicada não, atribuir os valores booleanos no atributo booleano aberta, exatamente nos métodos void abre() e fecha(), e usar o método booleano estaAberta() somente para saber se ele está aberto ou não retornando apenas o conteúdo de atributo aberta, assim:
class Porta {
boolean aberta = false;
String cor = "";
double dimensaoy = 0.0,dimensaox = 0.0,dimensaoz = 0.0;
void abre() {
this.aberta = true;
pinta("Verde");
System.out.println("PORTA ABERTA!");
}
void fecha(){
this.aberta = false;
pinta("Vermelho");
System.out.println("PORTA FECHADA!");
}
void pinta(String s){
this.cor = s;
System.out.println("COR DA PORTA:" + this.cor);
}
boolean estaAberta(){
return aberta
}
}
Ficou bem melhor não :?: 8)
Certo , então eu não posso chamar um metodo void dentro de um metodo boolean?
Claro que pode, só não pode esperar que ele te retorne alguma coisa.
vlw Discorpio , eu entendi agora ! 
Olá, sou eu de novo.
Você pode invocar um método void dentro de um método booleano e até dentro de outro método void, porém não pode atribuir valores de atributos de qualquer tipo com métodos void.
Se você tem um atributo booleano e quer atribuir o seu valor através de um método, este método tem que retornar booleano, se o atributo for String, então o método tem que retornar um valor String, atributo do tipo inteiro só recebe valores de métodos que retornam inteiros, e assim sucessivamente.
Entendeu. :?:
Entendi 