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

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.

Qual o tipo de erro que esta dando?

colocar o codigo ajuda :smiley:

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.

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!

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.

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

Aqui está a classe Funcionario

[code]
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;
}
}
}[/code]

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.

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);

}
}