Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Da erro, quando não passo nenhum valor.

Da erro quando não passo nenhum valor, porque?

class Data{
    int dia;
    int mes;
    int ano;

    String mostrarData(){
        return this.dia + "/" + this.mes + "/" + this.ano;
    }
}


class Funcionario{
    String nome;
    String cargo;
    double salario;
    String rg;
    Data entrada;

    void recebeAumento (double valor){
        this.salario += valor;
    }

    double calculaGanhoAnual(){
        return this.salario * 12;
    }

    void mostra(){
        System.out.println("Nome: " + this.nome);
        System.out.println("RG: " + this.rg);
        System.out.println("Cargo: " + this.cargo);
        System.out.println("Data de entrada na empresa: " + this.entrada.mostrarData());
        System.out.println("Salário Mensal: " + this.salario);
        System.out.println("Salário Anual: " + this.calculaGanhoAnual());

    }

}


class ProgramaFuncionario{
    public static void main(String[] args){
        Funcionario func01 = new Funcionario();
        Data diaEntrada = new Data();
        func01.entrada = diaEntrada; 

        func01.nome = "Raphaelli Bellini";
        func01.cargo = "Desenvolvedor";
        func01.salario = 5000;
        func01.entrada.dia = 19;
        func01.entrada.mes = 8;
        func01.entrada.ano = 14;
        func01.rg = "31872456";
        func01.recebeAumento (1000);
        func01.mostra();
    }
}
11 respostas

Raphaelli,

Qual erro está aparecendo para você?

Fábio

Um erro gigantesco, não da nem para escrever aqui. Tenta rodar ai para vc ver.

Eu rodei esse código e essa foi a saída no console:

Nome: Raphaelli Bellini
RG: 31872456
Cargo: Desenvolvedor
Data de entrada na empresa: 19/8/14
Salário Mensal: 6000.0
Salário Anual: 72000.0

Erro quando você não passa valor nenhum? Em qual campo que você está se referindo?

Fábio, no caso teria que tirar as atribuições dos valores para dar erro.

Correto. O erro é quando não passo valores.

solução

Raphaelli,

Se você remover qualquer uma das linhas a seguir, seu código deve dar erro:

  • func01.entrada = diaEntrada;
  • func01.recebeAumento (1000);

A primeira lançará uma Exception, pois você tentará fazer func01.entrada.dia e, como não há o atributo entrada, ele deve lançar uma NullPointerException.

No segundo caso, seu código não deve nem compilar, pois você declarou que o método recebeAumento() necessita de parâmetros...

Acredito que essas sejam as únicas atribuição que, se omitidas, devem lançar exceções.

Fábio

O erro ocorre ao tirar as atribuições de dia, mês e ano como no código abaixo.

class Data{
    int dia;
    int mes;
    int ano;

    String mostrarData(){
        return this.dia + "/" + this.mes + "/" + this.ano;
    }
}


class Funcionario{
    String nome;
    String cargo;
    double salario;
    String rg;
    Data entrada;

    void recebeAumento (double valor){
        this.salario += valor;
    }

    double calculaGanhoAnual(){
        return this.salario * 12;
    }

    void mostra(){
        System.out.println("Nome: " + this.nome);
        System.out.println("RG: " + this.rg);
        System.out.println("Cargo: " + this.cargo);
        System.out.println("Data de entrada na empresa: " + this.entrada.mostrarData());
        System.out.println("Salário Mensal: " + this.salario);
        System.out.println("Salário Anual: " + this.calculaGanhoAnual());

    }

}


class ProgramaFuncionario{
    public static void main(String[] args){
        Funcionario func01 = new Funcionario();
        Data diaEntrada = new Data();
        func01.entrada = diaEntrada; 


        func01.nome = "Raphaelli Bellini";
        func01.cargo = "Desenvolvedor";
        func01.salario = 5000;
        func01.rg = "31872456";
        func01.recebeAumento (1000);
        func01.mostra();
    }
}

Raphaelli,

Removi essas atribuições e a saída foi a seguinte:

Nome: Raphaelli Bellini
RG: 31872456
Cargo: Desenvolvedor
Data de entrada na empresa: 0/0/0
Salário Mensal: 6000.0
Salário Anual: 72000.0

Copia aqui o erro que você está tendo...

Fábio

Que louco, agora funcionou! Desculpa.

Raphaelli,

Sem problemas! =)

Bons estudos,

Fábio