Olá! Eu fiz as correções necessárias em seu código comentando todas as linhas que estavam incorretas, escrevendo o código correto e dando uma pequena explicação. Você cometeu uma série de errinhos, incluindo esquecer de fechar as chaves da declaração da classe Data, e isso estava gerando um monte de erros de compilação.
Por favor leia cuidadosamente o código abaixo, comparando o código que você escreveu (que está comentado) com o código correto que eu escrevi. Também leia com atenção os comentários no código pois eu os escrevi para tentar clarear suas dúvidas. Assim acho que você poderá entender bem o assunto.
Um abraço!
class Funcionario {
String nome;
String departamento;
double salario;
Data dataDeEntrada;
String rg;
public void recebeAumento(double aumento){
this.salario += aumento;
}
public double calculaGanhoAnual(){
return this.salario * 12;
}
public double calculoInss(){
double inss = 0;
if(this.salario <= 1247.70){
inss = this.salario * 0.08;
} else if(this.salario >= 1247.71 && this.salario <= 2079.50 ){
inss = this.salario * 0.09;
} else if(this.salario >= 2079.51 && this.salario <= 4159.00){
inss = this.salario * 0.11;
}
return inss;
}
void mostra(){
//System.out.println("Nome: " + this.nome());
// O jeito correto para imprimir o nome, já que você não definiu
// um método nome(), é esse:
System.out.println("Nome: " + this.nome);
//System.out.println("Departamento: " + departamento());
// O jeito correto para imrimir o departamento, já que você não definiu
// um método departamento(), é esse:
System.out.println("Departamento: " + this.departamento);
System.out.println("Dia: " + this.dataDeEntrada.dia);
System.out.println("Mes: " + this.dataDeEntrada.mes);
System.out.println("Ano: " + this.dataDeEntrada.ano);
//System.out.println("RG: " + this.rg());
// O jeito correto para imprimir o RG, já que você não definiu um
// método rg(), é esse:/ ATENÇÃO: aqui você esqueceu de fechar as chaves para a cl
System.out.println("RG: " + this.rg);
//System.out.println("Salário Normal com Aumento: R$ " + this.salario());
// O jeito correto para imprimir o salário, já que você não definiu um
// método salario(), é esse:
System.out.println("Salário Normal com Aumento: R$ " + this.salario);
System.out.println("Valor de INSS: R$ " + this.calculoInss());
System.out.println("Ganho Anual: R$ " + this.calculaGanhoAnual());
System.out.println(" ");
}
}
class Data{
int dia;
int mes;
int ano;
void preencheData(int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
// ATENÇÃO: aqui você esqueceu de fechar as chaves para a classe Data,
// então estou acrescentando a linha abaixo para fechar a classe:
}
class ProgramaFuncionario {
public static void main(String[] args){
Funcionario f1 = new Funcionario();
//Data dataEntrada = new Data();
// O jeito correto para criar um novo objeto Data, já que o objeto
// Funcionario contém um abributo de uma outra classe é o seguinte:
// depois de criar um novo objeto funcionário (o f1 que você criou
// acima):
f1.dataDeEntrada = new Data();
//f1.nome("Marciano Olinski");
// O jeito correto de atribuir o nome, já que você não está
// chamando um método, é:
f1.nome = "Marciano Olinski";
//f1.departamento("Desenvolvimento");
// O jeito correto de atribuir o departamento, já que você não está
// chamando um método, é:
f1.departamento = "Desenvolvimento";
//f1.dataEntrada.preencheData(17, 9, 2013);
// Na linha de cima você chamou um método para atribuir a data,
// mas você não tinha inicializado o objeto corretamente. Então o
// correto é o seguinte:
f1.dataDeEntrada.preencheData(17, 9, 2013);
//f1.rg("4.563.213");
// O jeito correto de atribuir o RG, já que você não está
// chamando um método, é:
f1.rg = "4.563.213";
//f1.salario(1000.0);
// O jeito correto de atribuir o salário, já que você não está
// chamando um método, é:
f1.salario = 1000.0;
f1.recebeAumento(300.0);
f1.mostra();
}
}
Depois que você compilar o código acima, a saída é a seguinte:
[abrantesasf@laptop]> java ProgramaFuncionario
Nome: Marciano Olinski
Departamento: Desenvolvimento
Dia: 17
Mes: 9
Ano: 2013
RG: 4.563.213
Salário Normal com Aumento: R$ 1300.0
Valor de INSS: R$ 117.0
Ganho Anual: R$ 15600.0