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