Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
11
respostas

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