Vamos lá amigão, vou te ajudar. Vamos por partes!
Editei o seu código com a formatação correta para ficar melhor para te ajudar.
- Você tem que ter a percepção no qual java é case sensitive, ou seja, ele consegue identificar letras maiúsculas e letras minúsculas.
O seu primeiro erro foi aqui:
thiago.RecebeAumento(1000.00);
Conseguiu identificar o erro?
Perceba que na sua classe Funcionário você criou o método como recebeAumento e na classe que contém o método main você chama o método como RecebeAumento, não vai rodar por causa da questão do case sensitive.
Beleza? muita atenção quanto a esse ponto.
Então tudo certo, vamos ao outro ponto.
O outro erro você cometeu aqui:
thiago.CalculaGanhoAnual(thiago.salario*12);
Veja bem, você criou um método que já faz o calculo do salário * 12, correto?
Entao deixa eu entender, você tá tentando passar um método com um parâmetro no caso thiago.salario*12 e depois multiplicar por mais 12 dentro do método? haha. Não vai funcionar brother!
Primeiro porquê você não passou nenhum parâmetro para o método na hora de criar.
Confira aqui:
double CalculaGanhoAnual() {
return (this.salario * 12);
}
Certo?
quando você chama o método você tenta passar o seguinte parâmetro thiago.salario*12. Não precisa, apenas chame o método normal!
Seu código fica assim então:
public class Dados {
public static void main(String[] args) {
Funcionario thiago = new Funcionario();
thiago.departamento = "Administrativo";
thiago.salario = 300.00;
thiago.admissao = "10 março 2012";
thiago.rg = 12345;
thiago.recebeAumento(1000.00);
thiago.CalculaGanhoAnual();
System.out.println(thiago.departamento);
System.out.println(thiago.salario);
System.out.println(thiago.admissao);
System.out.println(thiago.rg);
System.out.println("Ganho Anual: " + thiago.calculaGanhoAnual());
}
Só um detalhe, muito cuidado ao criar padrões quando você estiver programando. Por exemplo:
Aqui você fez assim:
void recebeAumento(double aumentoSalario) {
this.salario+=aumentoSalario;
}
E aqui assim:
double CalculaGanhoAnual() {
return (this.salario * 12);
}
Poderia ter feito assim:
double CalculaGanhoAnual() {
return this.salario *= 12;
Seguindo o padrão.
Outro detalhe:
Nome de métodos são elaborados da seguinte maneira:
primeira letra minúscula e a primeira letra da segunda palavra maiúscula.
Ex: calculaGanhoAnual
A equipe Alura agradeçe, disponha para novas dúvidas.