2
respostas

Quando executo a classe aparece

class Empresa {
        String titulo;
        double cnpj;
        Funcionario [] membro ;

        void mostrar () {
    for(int i = 0; i < this.membro.length; i++){
        Funcionario temporario = this.membro[i];
        if (temporario == null) continue;


    System.out.println("====================================================================");
    System.out.println("Data:" + temporario.dataTitular.mostraData());
    System.out.println();
    System.out.println("Ttitular da conta:" + temporario.titular.nome);
    System.out.println();
    System.out.println("Ano de nascimento do Titular:" + temporario.titular.anoDeNascimento);
    System.out.println();
    System.out.println("Idade do Titular:" + temporario.anoDoTitular());
    System.out.println();
    System.out.println("Numero da conta:" + temporario.numeroDaConta);
    System.out.println();
    System.out.println("Tipo da conta:" + temporario.tipoDaConta);
    System.out.println();
    System.out.println("Salário atual da conta:" +temporario.salario);
    System.out.println();
    System.out.println("Ganho anual do Titular e:" +temporario.calculaGanhoAnual());
    System.out.println();

    System.out.println("====================================================================");
    }
    }
    }
class Funcionario {

    double salario;
    int numeroDaConta;
    Pessoa titular;
    String tipoDaConta;
    double anoAtual = 2017;
    Data dataTitular;

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

    }

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


    }

    double anoDoTitular(){
        return this.anoAtual -=this.titular.anoDeNascimento;
    }






}
class Pessoa {
    String nome;
    int anoDeNascimento;
    String estadoCivil;
}
class Data {
    int dia; 
    int mes;
    int ano;

    void formatoData(int dia, int mes, int ano){
         this.dia = dia;
         this.mes = mes;
         this.ano = ano;
    }
        String mostraData(){
            return this.dia +"/"+ this.mes +"/"+this.ano;

        }
}
class TesteFuncionario { 

    public static void main (String [] args){
        Empresa ibm = new Empresa ();
        ibm.membro = new Funcionario[10];

        ibm.membro[0].numeroDaConta = 22;
        ibm.membro[0].salario = 500;
        ibm.membro[0].tipoDaConta = "Premium";
        ibm.membro[0].titular = new Pessoa();
        ibm.membro[0].titular.nome = " Felipe Rocha";
        ibm.membro[0].titular.anoDeNascimento = 1992;
        ibm.membro[0].titular.estadoCivil = " Solteiro";
        ibm.membro[0].dataTitular = new Data();
        ibm.membro[0].dataTitular.formatoData (26,11,2017);
        ibm.membro[0].calculaGanhoAnual();

        ibm.membro[1].numeroDaConta = 22;
        ibm.membro[1].salario = 500;
        ibm.membro[1].tipoDaConta = "Premium";
        ibm.membro[1].titular = new Pessoa();
        ibm.membro[1].titular.nome = " Felipe Rocha";
        ibm.membro[1].titular.anoDeNascimento = 1992;
        ibm.membro[1].titular.estadoCivil = " Solteiro";
        ibm.membro[1].dataTitular = new Data();
        ibm.membro[1].dataTitular.formatoData (26,11,2017);
        ibm.membro[1].calculaGanhoAnual();




        ibm.mostrar();

    }

}
2 respostas

Olá! não entendi muito bem a sua dúvida, aparece alguma mensagem de erro?

Você pode copiar e colar a mensagem de erro aqui?

abraços!

  • A classe main precisa ser pública. A JVM vai procurar uma classe pública com o método de entrada. Se não achar, não vai conseguir executar o programa, mesmo que não haja erros de compilação.

  • Além disso, é necessário instanciar cada posição do array que você for inserir algo.ibm.membro = new Funcionario[10]; diz para o compilador que você está alocando dez espaços para guardar objetos do tipo Funcionario. Para cada um desses espaços, é necessário instanciar o objeto propriamente dito. Antes disso, eles não estão lá. Para resolver este problema, basta adicionar:

ibm.membro[0] = new Funcionario(); antes de começar a atribuir os valores. A mesma coisa para cada elemento que você inserir.

Espero ter ajudado :)