Bem pessoal esta é minha primeira postagem aqui no forum, mas ja venho acompanhando este excelente trabalho como leitor ja algum tempo. Bem eu ainda sou bem iniciante no java e estou estudando a opostila fj11 da caelum e estou tendo uma dificuldade no exercico 4.12. Encontrei alguns topicos sobre este exercicio mas ainda não consegui resolver meu problema. Bom quando tendo compilar o codigo aparece a seguinte mensagem de erro: identifier expected salario ^=salario + aumento, o codigo é o seguinte
public class Funcionario
{
String nome;
String departamento;
Double salario;
String admissao;
String rg;
boolean ativo;
void bonifica(double aumento)
{
} salario = salario + aumento;
}
public class TestaFuncionario
{
public static void main(String[] args)
{
Funcionario f1 = new Funcionario();
f1.nome = "Cesar";
f1.salario = 100;
f1.departamento = "Marketing";
f1.admissao = "01092010";
f1.rg = "123456789";
f1.bonifica(50);
f1.ativo = true;
f1.aumento = f1.salario+f1.bonifica;
System.out.println("Nome do Funcionario: "+f1.nome);
System.out.println("salario atual: "+f1.salario);
System.out.println("Departamento: "+f1.departamento);
System.out.println("Data de Admissão : "+f1.admissao);
System.out.println("RG: "+f1.rg);
System.out.println("Bonificação : "+f1.bonifica);
System.out.println("Funcionario ativo: "+f1.ativo);
System.out.println("Novo Salario: "+f1.aumento);
}
}
Bem pessoal, acredito que seja uma coisa extremamente bobo, mas como disse ainda sou bem inciante.
Vlw pessoal e conto com a ajuda de vcs!!!
Seguinte este erro está acontecendo porque você colocou sua função fora do corpo do método.
Seu código:
void bonifica(double aumento)
{
} salario = salario + aumento;
E como deveria ser:
void bonifica(double aumento)
{
salario = salario + aumento;
}
Repare na abertura e fechamento das chaves.
Vlw pela ajuda kara resolveu este problema, vacilo meu não tinha percebido, to fazendo pelo notepad. Mas apareceu outro erro quando vou rodar o programa aparece a mensagem exception thread “main” java.lang No.Such.Method Error: Main, ja troquei o nome da class em que o metodo main está contido para o mesmo do programa, mas o erro ainda persiste. O que pode esta havendo???
Na verdade existem alguns pequenos erros em seu programa. Um deles está na própria classe “Funcionario”, pelo que entendi você quer o retorno do aumento do salario do funcionário neste caso você pode fazer algo parecido com isto:
double bonifica(double aumento)
{
return aumento += salario;
}
Realmente cara o codigo realmente deve estar com alguns erros modifiquei ele, esta assim agora:
[code]
public class Funcionario
{
String nome;
String departamento;
Double salario;
String admissao;
String rg;
boolean ativo;
double aumento;
double bonifica;
void bonifica(double aumento)
{
return aumento += salario;
}
}
class Funcionario
{
public static void main(String[] args)
{
Funcionario f1 = new Funcionario();
f1.nome = "Cesar";
f1.salario = 100.00;
f1.departamento = "Marketing";
f1.admissao = "01092010";
f1.rg = "123456789";
f1.bonifica(50);
f1.ativo = true;
f1.aumento = f1.salario+f1.bonifica;
System.out.println("Nome do Funcionario: "+f1.nome);
System.out.println("salario atual: "+f1.salario);
System.out.println("Departamento: "+f1.departamento);
System.out.println("Data de Admissão : "+f1.admissao);
System.out.println("RG: "+f1.rg);
System.out.println("Bonificação : "+f1.bonifica);
System.out.println("Funcionario ativo: "+f1.ativo);
System.out.println("Novo Salario: "+f1.aumento);
}
}[/code]
Mas o erro no metdo main ainda persiste, oq pode estar havendo? De qualquer maneira vlw muito pela ajuda cara!!!
Não esqueça de modificar void por double, pois a palavra void indica sem retorno e neste caso sua função retornará um valor double:
double bonifica(double aumento)
–> Remova as linhas: 18; 19; 20; 21 e 22.
–> Como sugestão crie em sua classe Funcionário uma variável bonus;
–> Depois você seta o valor da bonificação nesta variável;
–> Então você pode chamar o metodo bonifica.
Ficaria +/- assim:
f1.bonus = 50.0; //(ou f1.bonus = (double) 50;)
System.out.println("Novo Salario: " + f1.bonifica(f1.bonus);
Desta forma você terá o retorno do aumento calculado e também terá o valor do bonus armazenado.
Uma outra dica é analisar a saída de seu compilador (os erros) e analisar as variáveis que estão sendo “reclamadas” pode ajudar a identificar os problemas. Caso continue tendo problemas é só postar… Flw.
Pessoa descupe pela demora, na reposta, mas finalmente consegiu rodar o programa. Gilberto_TC, vlw mesmo pela ajuda, brigadaço!!!