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.