Problema com Metodos!

[code]Galera, comecei a aprender JAVA a pouco tempo e me deparei com esse problema que não consegui resolver de jeito algum!! Se alguém puder dar uma ajuda, fico grato!

public class Funcionario {

String funcionario = "Wesley";
String departamento = "TI";
double salario;
String inicio = "Fevereiro";
String rg = "27.913.139-2";

void bonifica(double aumento) {
	double salarioNovo = this.salario + 1200;
	this.salario = salarioNovo;
	}

void calculoAnual(){
double salarioAnual = this.salario * 12;
this.salario = salarioAnual;

	}

}

class TestaFuncionario {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	
	Funcionario f1 = new Funcionario();
	
	f1.funcionario = "Wesley";
	f1.salario = 100;
	f1.bonifica(50);		
	f1.calculoAnual();
	
	System.out.println("Salario atual:" + f1.salario);
	System.out.println("Ganho anual" + f1.calculoAnual());
}

}[/code]

Estou com problema na hora de sair o calculoAnual, ele dá o erro na linha 41:

Guia Console:
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The operator + is undefined for the argument type(s) String, void

at TestaFuncionario.main(Funcionario.java:39)

Guia Problems:
Description Resource Path Location Type
The operator + is undefined for the argument type(s) String, void Funcionario.java /Funcionario/src line 39 Java Problem

  1. Põe o código dentro da TAG [ code ]
  2. Explica direito qual a situação, o que você quer fazer?
  3. Posta o erro que está ocorrendo

O seu problema é muito simples. Na linha 41 você está tentando imprimir o resultado do método calculoAnual, mas este método é void, não tem retorno.

O seu método calculoAnual não deveria alterar o salário do funcionário, isto não faz sentido. Imagine que ao chamar este método, automaticamente o funcionário passa a receber 12 vezes mais. Eu gostaria de trabalhar nesta empresa. :smiley:

Acho que o método cálculoAnual deve apenas retornar o salário do ano, não alterar o salário do funcionário. Se for isto, a ideia do método é esta:

double calculoAnual() {
   return this.salario * 12; //retornando ao invés de atribuir!
}

Deste modo você vai retornar o salário anual, mas sem alterar o salário do funcionário.

O Metodo “f1.calculoAnual()” é do tipo void, porque você esta tentando printar, sem retornar nada …

Faça ele ser do tipo String e retornar o valor que você pretendia printar!

(Não sei escrever de forma educada, só quis ajudar…)