Urgente!

Olá gente!!!
Quem puder me ajudar como resolver o problema da situação do funcionario (Ativo ou demitido), agradeço…
O restante para mim está rodando numa boa…
Atte.
Lilian Viana

*Classe Funcionario

public class Funcionario {

String nome;
String depto;
double salario;
String admissao;
String rg;
boolean sit;
double bonus;
double novoSalario;

void bonifica(double bonif){
double novoSalario = this.salario + bonif;
this.salario = novoSalario;
}

public void situacao(boolean sit){
boolean situacao = true;
if (situacao == true){
System.out.println(“Funcionario demitido”+sit);
}
else {
System.out.println(“Funcionario ativo”+sit);
}
}

void mostra() {
System.out.println("Nome: " + this.nome);
System.out.println("Data de Admissao: " + this.admissao);
System.out.println("Departamento: " + this.depto);
System.out.println("Doc Id: " + this.rg);
System.out.println("Salario: " + this.salario);
System.out.println("Bonus: " + this.bonus);
System.out.println("Situação: "+ this.sit);
}
}

*Classe Teste Funcionario

public class TestaFuncionario extends Funcionario{

public static void main (String Args[]){
Funcionario f1 = new Funcionario();
f1.nome = “Lilian Viana”;
f1.rg = “1122334”;
f1.depto = “Informática”;
f1.admissao = “01/03/2011”;
f1.salario = 5500.00;
f1.bonus = f1.salario * 0.5;
f1.sit = (true);
f1.novoSalario = f1.salario + f1.bonus;

System.out.println(f1);
System.out.println("\nNome = " +f1.nome +"\nRG = " +f1.rg +"\nDepartamento = “+f1.depto +”\nSalario = “+f1.salario +”\n"+“Bonificação = “+f1.bonus);
System.out.println(”\nSalário com Bonificação: “+f1.novoSalario+”\n”);
System.out.println("\nSituação: "+f1.sit);

Funcionario f2 = new Funcionario();
f2.nome = “Debora Machado”;
f2.rg = “5566778”;
f2.depto = “Administração”;
f2.salario = 3500.00;
f2.bonus = (180);
f2.sit =(false);
f2.novoSalario = f2.salario+f2.bonus;

System.out.println(f2);
System.out.println("\nNome = " +f2.nome +"\nRG = " +f2.rg+"\nDepartamento = “+f2.depto+”\nSalario = “+f2.salario +”\n"+“Bonificação = " +f2.bonus);
System.out.println(”\nSalário com Bonificação: “+f2.novoSalario);
System.out.println(”\nSituação: "+f2.sit);

}
}

Tem que explicar melhor o problema, mas acho que assim deve resolver:

public void situacao(boolean sit){ 
  if (sit == true){ 
    System.out.println("Funcionario demitido"+sit); 
  } 
  else { 
    System.out.println("Funcionario ativo"+sit); 
  } 
} 

Quando postar código, use as tags code para ficar mais claro. Leia mais aqui: http://www.guj.com.br/java/50115-vocnovo-no-guj-vai-criar-um-tico-e-colar-seu-cigo-fonte-leia-aqui-antes-por-favor

Qual sua duvida·?

Não estou conseguindo desmosntrar se o funcionario é Ativo ou Demitido. Sempre q compilo aparece o valor Tue ou false, qdu na verdade eu gostaria q demonstrasse se o funcionario está ativo ou se ele Demitido.

Classe Funcionario

   public class Funcionario {

String nome;
String depto;
double salario;
String admissao;
String rg;
boolean sit;
double bonus;
double novoSalario;


void bonifica(double bonif){
double novoSalario = this.salario + bonif;
this.salario = novoSalario;
}

public void situacao(boolean sit){
boolean situacao = true;
if (situacao == true){
System.out.println("Funcionario demitido"+sit);
}
else {
System.out.println("Funcionario ativo"+sit);
}
}

void mostra() {
System.out.println("Nome: " + this.nome);
System.out.println("Data de Admissao: " + this.admissao);
System.out.println("Departamento: " + this.depto);
System.out.println("Doc Id: " + this.rg);
System.out.println("Salario: " + this.salario);
System.out.println("Bonus: " + this.bonus);
System.out.println("Situação: "+ this.sit);
}
} 

Classe de Teste

public class TestaFuncionario extends Funcionario{

public static void main (String Args[]){
Funcionario f1 = new Funcionario();
f1.nome = "Lilian Viana";
f1.rg = "1122334";
f1.depto = "Informática";
f1.admissao = "01/03/2011";
f1.salario = 5500.00;
f1.bonus = f1.salario * 0.5;
f1.sit = (true);
f1.novoSalario = f1.salario + f1.bonus;


System.out.println(f1);
System.out.println("\nNome = " +f1.nome +"\nRG = " +f1.rg +"\nDepartamento = "+f1.depto +"\nSalario = "+f1.salario +"\n"+"Bonificação = "+f1.bonus);
System.out.println("\nSalário com Bonificação: "+f1.novoSalario+"\n");
System.out.println("\nSituação: "+f1.sit);

Funcionario f2 = new Funcionario();
f2.nome = "Debora Machado";
f2.rg = "5566778";
f2.depto = "Administração";
f2.salario = 3500.00;
f2.bonus = (180);
f2.sit =(false);
f2.novoSalario = f2.salario+f2.bonus;


System.out.println(f2);
System.out.println("\nNome = " +f2.nome +"\nRG = " +f2.rg+"\nDepartamento = "+f2.depto+"\nSalario = "+f2.salario +"\n"+"Bonificação = " +f2.bonus);
System.out.println("\nSalário com Bonificação: "+f2.novoSalario);
System.out.println("\nSituação: "+f2.sit);

}
}

tenta assim:

f1.sit = true;

sem os parenteses

Mocinha, seu método retorna boolean, ou seja, só apresentará true or false, agora caso queira apresentar algo mais “legivel”, faça uma “String” melhor no “sysout”

    public void situacao(boolean sit){   
      if (sit){   
        System.out.println("Funcionario demitido");   
      }else {   
        System.out.println("Funcionario ativo");   
      }   
    }

Aí ao inves de chamar o “atributo” sit você chama o método:

System.out.println("\nSituação: "+f2.situacao(sit)); 

Espero ter ajudado…rs

[code]public class Funcionario {

String nome;
String depto;
double salario;
String admissao;
String rg;
boolean sit;
double bonus;
double novoSalario;

void bonifica(double bonif){
double novoSalario = this.salario + bonif;
this.salario = novoSalario;
}

public void situacao(boolean sit){
boolean situacao = true;
if (situacao == true){
System.out.println(“Funcionario demitido”+sit);
}
else {
System.out.println(“Funcionario ativo”+sit);
}
}

void mostra() {
System.out.println("Nome: " + this.nome);
System.out.println("Data de Admissao: " + this.admissao);
System.out.println("Departamento: " + this.depto);
System.out.println("Doc Id: " + this.rg);
System.out.println("Salario: " + this.salario);
System.out.println("Bonus: " + this.bonus);
System.out.println("Situação: "+ ( ( this.sit)?“Ativo” : “Demitido”) );
}
} [/code]

Ou pode fazer assim:

public String situacao(boolean sit){     
  if (sit){     
    return "Funcionario demitido";     
  }      
  return "Funcionario ativo"; 
}

System.out.println("\nSituação: "+f2.situacao(sit));  

Seguindo a dica do robinsonbsilva.

Gente to tentando… mas ainda continuo com o mesmo problema True quando não false… mas vou tentar todos novamente… Agradeço a todos pela ajuda e paciência!!!

Linda Jovem,

Pelas soluções que o pessoal te passou é provavel que tenha resolvido o seu problema. Caso contrário me envia uma MP.

abs,

Isso resolve o teu problema…

public boolean situacao(boolean valor){  
              
            if(valor){  
                System.out.println("FUNCIONARIO DEMITIDO");  
            }else{  
                System.out.println("FUNCIONARIO ATIVO");  
            }  
            return valor;  
              
        }  

Esse código aqui:

public void situacao(boolean sit){ boolean situacao = true; if (situacao == true){ System.out.println("Funcionario demitido"+sit); } else { System.out.println("Funcionario ativo"+sit); } }

Troque por:

public void situacao(boolean sit){ this.sit = sit; }

Dentro do método mostra, coloque a seguinte linha:

System.out.println("Situação: "+ ( ( this.sit)?"Ativo" : "Demitido")  );

E na sua classe de teste, no lugar de você ficar printando as variáveis, invoque o método que você criou

f1.mostra()

voce chama a funcao assim passando o valor TRUE ou FALSE:

f2.situacao(false); //IRA RETORNAR A STRING: “FUNCIONARIO ATIVO”
f2.situacao(true); //IRA RETORNAR A STRING: “FUNCIONARIO DEMITIDO”

acho q as dicas dos amigos do forum podem ajudar…

porem quanto ao forum…
utilize a tag CODE para postar seus códigos fontes…
JAMAIS poste tópicos como “URGENTE”, “ME AJUDE”, “POR FAVOR”…

todos aqui postam suas dúvidas… e nenhuma é mais importante que a outra… todas tem a mesma prioridade, ou seja, serão atendidas de acordo com a boa vontade/conhecimento dos membros do forum…

se ainda tiver com dúvida, por favor continue trazendo para gente… se foi resolvido, altere o assunto do tópico e coloque [[RESOLVIDO]]

sem mais,
Paulo Victor

[quote=Kanin Dragon]Linda Jovem,

Pelas soluções que o pessoal te passou é provavel que tenha resolvido o seu problema. Caso contrário me envia uma MP.

abs,[/quote]

por mais “boa vontade” que você tenha, você deve saber que vai contra as regras do fórum responder via MP.
As soluções tem que ser compartilhadas entre os membros do GUJ…
“take care” meu caro…

Gostaria muito de agradecer a todos q me ajudaram… foi muito importante… OBRIGADA!!!
Espero ser ajudada sempre por vcs e qdu eu tiver experiencia suficiente, podem ter certeza q não negarei ajudar…

Obrigada pela ajuda, foi muito importante em meus aprendizados…
Vlwwwwwwwwwwwwwww!!!
Espero ajudar um dia qdu eu tiver experiencia suficiente…

[quote=paulovloghan][quote=Kanin Dragon]Linda Jovem,

Pelas soluções que o pessoal te passou é provavel que tenha resolvido o seu problema. Caso contrário me envia uma MP.

abs,[/quote]

por mais “boa vontade” que você tenha, você deve saber que vai contra as regras do fórum responder via MP.
As soluções tem que ser compartilhadas entre os membros do GUJ…
“take care” meu caro…[/quote]

Jovem,

Em qual momento citei em meu post anterior que não compartilharia a solução proposta a todos os membros do GUJ ?

Atentente que o meu post não cita solução, e apenas indica que o problema seria resolvido com as soluções proposta anteriormente.

Por favor, mantenha o foco no problema, não estamos aqui para causar intrigas e sim encontrar a melhor solução para o problema proposto.

Abs,

Linda Jovem,

Se quiser também pode passar uma MP com o seu telefone e e-mail 8)

Abs,

o problema q encontrei ta aqui :

public void situacao(boolean sit){ 
   boolean situacao = true; 
   if (situacao == true){ 
      System.out.println("Funcionario demitido"+sit); 
   }  
   else { 
     System.out.println("Funcionario ativo"+sit); 
   } 
} 

ela nao usa a ver q passa como parametro
cria uma outra q sempre e true

e faz a comparacao com essa ai, entao sempre da errado. mas ela nunca usa esse metodo na classe teste. entao onde ta o erro, ja que ela acessa e seta o valor da situacao diretamente (func.sit = true pra setar) (func.sit pra ler) ??? onde tava o erro?