[RESOLVIDO]Dúvida Métodos saiFuncionarioNoDepto e entraFuncionarioNoDepto

Boa noite Pessoal,

Estou na dúvida quanto a estes dois métodos… Alguém teria alguma outra sugestão para elaborar estes dois métodos?

Minha dúvida é se está correto esta linha de raciocinio.

[code]//chamado quando um funcionário do departamento é demitido ou transferido para outro departamento
public void saiFuncionarioDepto(boolean situacao){
situacao = true;
if(situacao == true){
System.out.println(“Funcionario demitido” + situacao);
}
else{
System.out.println(“Funcionario transferido” + situacao);
quantFuncDepartamento–;
}
}

//chamado sempre que um novo funcionário é alocado no departamento
public void entraFuncionarioDepto(boolean situacao){
	situacao = true;
	if(situacao == true)
		System.out.println("Novo funcionário alocado" + situacao);
	quantFuncDepartamento++;
}[/code]

Tem uma coisa que é a seguinte.
Você passa por parâmetro a situação, que deverá vir true ou false.
Porém logo em seguida você seta essa situação como true, então mesmo que venha false, sempre será true.
Tira esse situacao = true; senão sempre será true e irá cair no IF e nunca no ELSE.

Parece ser um problema escolar, pq é a segunda pessoa que vejo postar algo sobre esse assunto hj, hehehe…
Dá uma olhada aqui: http://www.guj.com.br/java/240536-urgente/2#1242142
Talvez te ajude a resolver o problema.

Desculpa,

Mas não consegui perceber meu erro. Poderiam me dar um exemplo prático?

Vc tem esse método:

public void saiFuncionarioDepto(boolean situacao){ situacao = true; if(situacao == true){ System.out.println("Funcionario demitido" + situacao); } else{ System.out.println("Funcionario transferido" + situacao); quantFuncDepartamento--; } }

Você está passando um parametro (boolean situacao).
Esse parametro vai chegar valendo true ou false, digamos que seja false.
Quando vc entrar no método, a primeira linha dentro do método está setando
situacao como true, então chega false e recebe true, quer dizer que sempre será true.
Você não deve usar a linha “situacao = true;”.
Deixe assim:

public void saiFuncionarioDepto(boolean situacao){ if(situacao == true){ System.out.println("Funcionario demitido" + situacao); } else{ System.out.println("Funcionario transferido" + situacao); quantFuncDepartamento--; } }

No método seguinte aconteceu a mesma coisa:

public void entraFuncionarioDepto(boolean situacao){ situacao = true; if(situacao == true) System.out.println("Novo funcionário alocado" + situacao); quantFuncDepartamento++; }

E ainda sempre, sendo true ou false, a variavel quantFuncDepartamento vai ser incrementada.
Então deixe assim:

public void entraFuncionarioDepto(boolean situacao){ if(situacao == true) { System.out.println("Novo funcionário alocado" + situacao); quantFuncDepartamento++; } }

Assim, se o parametro vier false, não incrementa e nem mostra a mensagem.

Valeu, agora entendi…