Exercício 2 do capítulo 4 da apostila da Caelum

8 respostas
A

Gostaria de esclarecer uma dúvida sobre o Exercício 2 do capítulo 4 da apostila da Caelum referente a orientação a objetos básica.
Por que quando chamo o método bonifica criado na classe funcionário e peço para imprimir o salário atual dá erro de compilação.
Se alguém puder esclarecer essa dúvida desde já agradeço.

8 Respostas

tinorberto

Qual o tipo de erro que esta dando?

Rafael_Marques1

colocar o codigo ajuda :smiley:

A

Tinoberto,primeiramente quero agradecer por tentar esclarecer minha dúvida,na realidade o erro se dá quando eu peço para imprimir o método bonifica.Abaixo está o código da main:

public class TestaFuncionario{

public static void main(String [] args){

Funcionario f1=new Funcionario();

f1.nome=zoio;

f1.departamento=forjaria;

f1.dataEntrada=20/07/2009;

f1.rg=28.588.533-25;

f1.salario=800.00;

f1.bonifica(50.00);

System.out.println(f1.bonifica);// o erro esta aqui.

}

}

e na parte de baixo aparece o erro:
cannot find symbol variable bonifica.

mais uma vez obrigado por esclarecer minha dúvida.

Paulo_Silveira

Oi Alexandre

Isso quer dizer que ele não esta achando o seu metodo BONIFICA. Sua classe funcionario tem esse metodo? Coloque o codigo dela

abracos!

leandro-maanaim

Erro simples! tente System.out.println(f1.bonifica()) e claro o argumento que vai dentro do parent…() Isso é se vc colocou algum argumento né.

Tava faltando o ().

Espero ter ajudado eu acho.

A
Para facilitar vou enviar o código inteiro(classe Funcionario e a main).

public class Funcionario{

String nome;

String departamento;

String dataEntrada;

String rg;

double salario;

boolean estaNaEmpresa;

public void bonifica(double aumento){

double novoSalario=aumento+salario;

}

public boolean demite(){

nome=this.nome;

if (this.nome==nome){

return true;

}	

else{

return false;

}

}

}
public class TestaFuncionario{

public static void main(String [] args){

Funcionario f1=new Funcionario();

f1.nome=zoio;

f1.departamento=forjaria;

f1.dataEntrada=20/07/2009;

f1.rg=28.588.533-25;

f1.salario=800.00;

f1.bonifica(50.00);

System.out.println(f1.bonifica());

}

}

Já tentei resolver,mas nao consegui.

Mais uma vez obrigado pela ajuda

peresjuliao
Aqui está a classe Funcionario
public class Funcionario
{
   // Variaveis de intância
   String nome;
   String departamento;
   String dataEntrada;
   String rg;
   double salario;
   boolean estaNaEmpresa;

   // método
   public void bonifica(double aumento)
   {
      double novoSalario = aumento + salario;
   }

   // método
   public boolean demite()
   {
      nome = this.nome;
      if (this.nome == nome)
      {
         return true;
      }
      else
      {
         return false;
      }
   }
}
E aqui a classe TestaFuncionario
public class TestaFuncionario
{
   public static void main(String [] args)
   {
      Funcionario f1 = new Funcionario();
      f1.nome = "zoio";
      f1.departamento = "forjaria";
      f1.dataEntrada = "20/07/2009";
      f1.rg = "28.588.533-25";
      f1.salario = 800.00;
      f1.bonifica(50.00);
      System.out.println(f1.bonifica());
   }
}

O erro de compilação que esta acontecendo na sua classe TestaFuncionario esta em "System.out.println(f1.bonifica());"
O que esta instrução esta tentando fazer?
Você está querendo imprimir alguma coisa, certo?
O objeto "f1" esta acessando o método da classe Funcionario pra que?
São alguma perguntas que te faço pra que abra a mente, no método bonifica você passa como parametro uma variavel double onde ela é somada
com a variavel de instância salario e atribuida a uma variavel local do tipo double novoSalario.

Você está se esquecendo que todas as variáveis que são criadas no método elas morrem nos métodos ou blocos.{}

Para que você tenha acesso ao novoSalario você vai ter criar a variavel de instância ou imprimir no próprio método.

A

Valeu cara pela ajuda,agora entendi.Veja a correção do codigo que fiz.

public class Funcionario{

String nome;

String departamento;

String dataEntrada;

String rg;

double salario;

boolean estaNaEmpresa;

public void bonifica(double aumento){

double novoSalario=aumento+salario;

System.out.println(novoSalario);

}

public boolean demite(){

nome=this.nome;

if (this.nome==nome){

return true;

}	

else{

return false;

}

}

}
public class TestaFuncionario

{

public static void main(String [] args)

{

Funcionario f1 = new Funcionario();

f1.nome = zoio;

f1.departamento = forjaria;

f1.dataEntrada = 20/07/2009;

f1.rg = 28.588.533-25;

f1.salario = 800.00;

f1.bonifica(50.00);

}
}

Criado 22 de julho de 2009
Ultima resposta 30 de jul. de 2009
Respostas 8
Participantes 6