Como verificar um acontecimento anterior e considera-lo no método atual

3 respostas
Maicon_Henrrique

Quero um exemplo básico de como agir com 2 métodos num exemplo assim

1º Método=
Cachorro pode latir ou não
Neste caso ele latiu


Se o cachorro latiu, diga “1”, caso contrário diga “2”

Como fazer com que o segundo método conheça o resultado do primeiro?
Desde já, obrigado.

3 Respostas

drsmachado

Você conhece a ordem pela qual os métodos são executados durante a execução de uma rotina?
Se não, existe algo que é chamado de empilhamento de processos e que permite, coisas como recursividade que é a possibilidade de um método trabalhar com valores processados por ele mesmo.
Como assim?
Vamos supor que a classe A possua os métodos m1, m2 e m3 e que, m1 chame m2, m2 chame m3 e m3 faça uma consulta ao usuário (abra um JOptionPane.showInputDialog). Enquanto o usuário não inserir nada e selecionar “ok” os métodos m3, m2 e m1 ficam “congelados”.
Quando o usuário finaliza sua parte, dispara a continuação de m3, que, ao finalizar devolve a m2 e este, por fim, para m1.

Assim sendo, se precisa que o método posLatir saiba o que o metodo podeLatir retorna, faça uma chamada

...
public void posLatir(){
  boolean latiu = podeLatir();
}

public boolean podeLatir(){
   if(cachorro.latiu()){
     return true;
  }
     return false;
}

como a descrita.

Maicon_Henrrique

Outro problema,

public void posLatir(){  
  boolean latiu = podeLatir();
  }  
  
  public boolean podeLatir(){  
  if (2 > 1) {
     return true;  
  }  
     return false;  
  }

Como eu faço pra usar o resultado do método podeLatir (true ou false) ?

A

Você pode usar a variável “latiu”, que guarda o resultado do método podeLatir(), conforme a linha 2 do seu código:

public void posLatir(){  
  boolean latiu = podeLatir();
  }

Segundo, o seu método podeLatir() vai retornar sempre “true”, porque a condição do if é sempre verdadeira (dois é sempre maior que um).

Criado 1 de março de 2012
Ultima resposta 1 de mar. de 2012
Respostas 3
Participantes 3