Exercico caelum 4.12

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!!!