Variável em um método

Bom dia galera, blz?
sou novo aqui no GUJ então me desculpem caso estiver fazendo besteira, agradeço desde já a atenção.

seguite.
eu tenho uma classe
e dentro dela 3 metodos. o meu objetivo eh descobrir se a porta está aberta ou nao.
entao eu gostaria de pegar o valor de um void ‘abre’ e usar esse valor no metodo estaAberto para fins de comparaçao.
eu tentei dessa maneira mas nao deu certo, nao consegui usar o valor da variavel no outro método.
exexplo:

classe Porta
{
boolean aberta;
String cor;
boolean x;

void abre()
{
x = true;
}

void fecha()
{
x = false
}

void estaAberta()
{
if ( x==true){
System.out.println(“Está aberta”);
}
else
System.out.println(“Está aberta”);

}

}

ps: estou começando desculpem a ignorancia.

você está mostrando a mesma mensagem para os 2 casos…

if ( x==true){ System.out.println("Está aberta"); } else System.out.println("Está aberta");
ou seja… estando o x true ou false a mensagem mostrará “Está Aberta”

Existem alguns erros no código. Tente usar da seguinte forma:

[code]public class Porta {

boolean x; 

void abre(boolean x) { 
	this.x = x;
} 

void fecha(boolean x) { 
	this.x = x; 
} 

void estaAberta() {
	if (x==true){
		System.out.println("Está aberta");
	}else 
		System.out.println("Está fechada"); 
} 

} [/code]
Chame os métodos da classe anterior da seguinte forma:

[code]public class AplicPorta {

/**
 * @param args
 */
public static void main(String[] args) {
	Porta p = new Porta();
	p.abre(false);
	p.estaAberta();
}

}[/code]

[quote=Felipe Gomes]Existem alguns erros no código. Tente usar da seguinte forma:

[code]public class Porta {

boolean x; 

void abre(boolean x) { 
	this.x = x;
} 

void fecha(boolean x) { 
	this.x = x; 
} 

void estaAberta() {
	if (x==true){
		System.out.println("Está aberta");
	}else 
		System.out.println("Está fechada"); 
} 

} [/code]
Chame os métodos da classe anterior da seguinte forma:

[code]public class AplicPorta {

/**
 * @param args
 */
public static void main(String[] args) {
	Porta p = new Porta();
	p.abre(false);
	p.estaAberta();
}

}[/code]

[/quote]
assim teriam 2 métodos (fecha e abre) fazendo a mesma coisa…
então coloque apenas 1 método que faça isso…
ex:

void realizaOperacao (boolean x) { this.x = x; }

[quote=erico_kl]assim teriam 2 métodos (fecha e abre) fazendo a mesma coisa…
então coloque apenas 1 método que faça isso…
ex:

void realizaOperacao (boolean x) { this.x = x; }[/quote]

Com os dois métodos existe a possibilidade de implementação individual. Um método para estabelecer uma conexão, outro para encerrá-la. Por isso concordei com os dois métodos.

Apesar de entender que na situação atual um método está igual ao outro, sendo portanto um deles desnecessário, como você bem sugeriu Érico.

Deixe com dois métodos mesmo, abrir e fechar. Deixa o código melhor organizado e mais fácil de entender. Só não precisa passar um booleano pra eles.

Opa, valeu galera.
usei a solução do amigo ai de cima
Obrigado pessoal. :lol:

class Porta
{

boolean resultado;

     void abre(boolean y)
       {
       this.resultado = y;
       }
    void fecha(boolean y)
        {
          this.resultado = y;
        }

void estaAberta()
{

               if(resultado==true)
               {
                   System.out.println("Porta está aberta.");
               }else
                    System.out.println("Porta está fechada");
        }

}
porta.abre(false)
porta.estaAberta();

Mas o abre e o fecha não precisam de receber qualquer parâmetro

class Porta
{
      boolean resultado; //assumimos que true = aberta e false = fechada.

      void abre() //Não precisas passar nenhum parâmetro, se vais pedir para abrir, é para ficar a true
     {
           this.resultado = true;
     }

      void fecha() //Não precisas passar nenhum parâmetro, se vais pedir para fechar, é para ficar a false
      {
             this.resultado = false;
       }

      void estaAberta()
      {

              if(resultado==true)  // aqui poderias por simplesmente if (resultado)
             {
                   System.out.println("Porta está aberta.");
              }else
                  System.out.println("Porta está fechada");
             }
     }
}

[quote=pmlm]Mas o abre e o fecha não precisam de receber qualquer parâmetro

class Porta
{
      boolean resultado; //assumimos que true = aberta e false = fechada.

      void abre() //Não precisas passar nenhum parâmetro, se vais pedir para abrir, é para ficar a true
     {
           this.resultado = true;
     }

      void fecha() //Não precisas passar nenhum parâmetro, se vais pedir para fechar, é para ficar a false
      {
             this.resultado = false;
       }

      void estaAberta()
      {

              if(resultado==true)  // aqui poderias por simplesmente if (resultado)
             {
                   System.out.println("Porta está aberta.");
              }else
                  System.out.println("Porta está fechada");
             }
     }
}

[/quote]
Muito bom. Lógica aperfeiçoada.

class Porta
{
      boolean situacaoPorta; 

      void abraOuFeche()      {
           this.situacaoPorta = !situacaoPorta;
     }

      void estaAberta() {
              if(situacaoPorta==true)  {
                   System.out.println("Porta está aberta.");
              }else{
                  System.out.println("Porta está fechada");
             }
     }
}

só pra variar…rs

Só lembrando que como a variável é booleana não é preciso comparar explicitamente com true no if. Ou seja, isso:

if (variavel == true)

Poderia ser simplesmente:

if (variavel)