2
respostas

Problema com compilação (javac)

Gente, fiquei com dúvida apenas no exercício 9 quando tento colocar a data formatada. Eu criei a String getFormatada(), porém ao compilar ele sempre acusa na parte do ano que eu tenho um problema no "t" e no "a" do this.ano.

para mim aparece assim:

erro 1:

linha 22: error: ";" expected
return this.dia+"/"+this.mes+"/"this.ano;
                                ^

erro 2:

linha 22: error:  not a statement
return this.dia+"/"+this.mes+"/"this.ano;
                                     ^

Segue o código abaixo:

class funcionario{
    String departamento;
    double salario;
    pessoa empregado=new pessoa();
    data dataEntrada=new data();
    void recebeAumento(double valor){
        this.salario += valor;
    }
    double calculaGanhoAnual(){
        return this.salario*12;
    }
    void mostraInfo(){
        System.out.println("Departamento: "+this.departamento+"\nSalario: "+this.salario+"\nNome: "+this.empregado.nome+"\nRG: "+this.empregado.rg+"\nData de Entrada: "+this.dataEntrada.getFormatada());
    }
}

class data{
    int dia;
    int mes;
    int ano;
    String getFormatada(){
        return this.dia+"/"+this.mes+"/"this.ano;
    }

}


class pessoa{
    String nome;
    String rg;    
}

class programa{
    public static void main(String[] args){
        double ganhoAnual=0;
        double salarioNovo=0;


        // cria as duas referências de funcionário
        funcionario rafael = new funcionario();
        funcionario rose = new funcionario();

        // programa de forma incompleta a funcionária Rose e copia os dados do funcionário Rafael
        rose.empregado.nome="Rafael Cordeiro";
        rose.salario=2600;

        // programa o rafael
        rafael.departamento="Planejamento Logistico e Transferencia";
        rafael.salario=2600;
        rafael.empregado.nome="Rafael Cordeiro";
        rafael.empregado.rg="37.398.993-2";
        rafael.dataEntrada.dia=17;
        rafael.dataEntrada.mes=02;
        rafael.dataEntrada.ano=2017;

        // pede a informação do rafael
        rafael.mostraInfo();

        // calcula o ganho anual e apresenta na tela
        ganhoAnual=rafael.calculaGanhoAnual();
        System.out.println("Ganho Anual: "+ganhoAnual);

        // rafael recebe aumento
        rafael.recebeAumento(6000);

        // mostra as informações novas agora que teve aumento
        rafael.mostraInfo();

        // mostra as informações da rose
        rose.mostraInfo();

        // calcula o novo ganho anual do rafael e mostra
        ganhoAnual=rafael.calculaGanhoAnual();
        System.out.println("Novo Ganho Anual: "+ganhoAnual);        

        // compara as referências
        if(rafael==rose){
            System.out.println("As referencias sao iguais");            
        }
        else{
            System.out.println("As referencias sao diferentes");            
        }
    }
}

Obrigado desde já pela ajuda!

2 respostas

Oi Rafael, Está faltando um + antes do this

Rafael, demorei um pouco para ler o código, mas em resumo, quando for fazer essa operação de concat( nesse caso string+ um valor qualquer) é sempre bom ver se não esqueceu dos operadores "+". Não desista do java não, é muito comum esse tipo de erro.

Abraço, segue a correção da linha.

return this.dia+"/"+this.mes+"/"+this.ano;