3
respostas

Exercício 03 - Classes salvas no mesmo arquivo etc.

Eis o meu código

class Funcionario {

    double salarioAnual;
    double salario;
    double salarioAumento;
    Data dataEntrada;
    String id;
    String departamento;
    String nome;
    String rg;
    String cpf;

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

    double calculaGanhoAnual() {

        return    salarioAnual = salarioAumento * 12;
    }

    void mostra() {
        System.out.println("\nNome:" + this.nome);
        System.out.println("Salario:" + this.salario);
        System.out.println("Seu aumento:" + this.salarioAumento);
        System.out.println("Salario anual:" + this.salarioAnual);
        System.out.println("Departamento:" + this.departamento);
        System.out.println("Data de Entrada:" + this.dataEntrada.getFormatada());
        System.out.println("RG: " + this.rg);
    }

} 
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;
    }

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

}

class TestaFuncionario {

    public static void main(String[] args) {
        Funcionario f1 = new Funcionario();

        f1.nome = "Hugo";
        f1.salario = 100;
        f1.recebeAumento(50);
        f1.departamento = "Sp";
        f1.rg = "123456789";
        f1.calculaGanhoAnual();
        f1.dataEntrada = new Data();
        f1.dataEntrada.preencheData(1,07,2016);
        f1.mostra();


        Funcionario f2 = new Funcionario();
        f2.nome = "Nikolai";
        f2.salario = 300;
        f2.recebeAumento(120);
        f2.departamento = "Sp";
        f2.dataEntrada.preencheData(18,8,2016);
        f2.rg = "01010101";
        f2.calculaGanhoAnual();

        f2.mostra();

        Funcionario f3 = f2;
        if(f2 == f3) {
            System.out.println("iguais");
        } else {
            System.out.println("Diferentes");
        }
    }

    class Empresa {
        Funcionario[] colaborador;
        int cnpj;
        int contador = 0;
        String nome;
        String endereco;


        void adiciona(Funcionario f) {

            this.colaborador[this.contador] = f;
            this.contador += 1;
        }

    }

    class TestaEmpresa {

        public  void main(String[] args) {
            Empresa google = new Empresa();
            google.colaborador = new Funcionario[10];

                google.colaborador[0].mostra();
                google.colaborador[1].mostra();

            }
    }
}

A saída da compilação é :

C:\Users\Nikolai\Desktop\simple_java (master)
λ java TestaEmpresa

Nome:null
Salario:1000.0
Seu aumento:0.0
Salario anual:0.0
Departamento:null
Data de Entrada:0/0/0
RG: null

Nome:null
Salario:1060.0
Seu aumento:0.0
Salario anual:0.0
Departamento:null
Data de Entrada:0/0/0
RG: null

Eu tentei resolver e cada vez que eu mexia no código alguma coisa dava errado =[

Poderiam me guiar?

3 respostas

Oi Nikolai, tudo bom?

Você pode anexar aqui sua classe TestaEmpresa completa? Acredito que esteja faltando algumas coisas , pois o código como está lançaria NullPointerException em google.colaborador[0].mostra(); e google.colaborador[1].mostra();.

Na verdade só tem isso do código mesmo, eu fiz acompanhando o vídeo.

Boa tarde Nikolai, tudo beleza?

Dei uma ajustada no código, se tiver alguma dúvida pode entrar em contato comigo :)

Um Abraço

class Funcionario {

//Modificado double salario; Data dataEntrada; String id; String departamento; String nome; String rg; String cpf;

//Modificado void recebeAumento(double aumento) { this.salario = this.salario + aumento; }

//Modificado double calculaGanhoAnual() { double salarioAnual = this.salario * 12; return salarioAnual; }

//Modificado void mostra() { System.out.println("\nNome:" + this.nome); System.out.println("Salario:" + this.salario); System.out.println("Salario anual:" + this.calculaGanhoAnual()); System.out.println("Departamento:" + this.departamento); System.out.println("Data de Entrada:" + this.dataEntrada.getFormatada()); System.out.println("RG: " + this.rg); }

} 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; }

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

}

class TestaFuncionario {

public static void main(String[] args) {

Funcionario f1 = new Funcionario(); f1.nome = "Hugo"; f1.salario = 100; f1.recebeAumento(50); f1.departamento = "Sp"; f1.rg = "123456789"; f1.dataEntrada = new Data(); f1.dataEntrada.preencheData(1,7,2016); f1.mostra();

Funcionario f2 = new Funcionario(); f2.nome = "Nikolai"; f2.salario = 300; f2.recebeAumento(120); f2.departamento = "Sp"; f2.dataEntrada = new Data(); f2.dataEntrada.preencheData(18,8,2016); f2.rg = "01010101"; f2.mostra();

Funcionario f3 = f2; if(f2 == f3) { System.out.println("iguais"); } else { System.out.println("Diferentes"); } }

class Empresa { Funcionario[] colaborador; int cnpj; int contador = 0; String nome; String endereco;

void adiciona(Funcionario f) { this.colaborador[this.contador] = f; this.contador += 1; }

}

//Não entendi o que quis fazer. class TestaEmpresa {

public void main(String[] args) { Empresa google = new Empresa(); google.colaborador = new Funcionario[10];

google.colaborador[0].mostra(); google.colaborador[1].mostra();

} } }

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software