Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Aula 4 exercicio2

Pessoal boa tarde, alguem poderia me dizer o que posso fazer para rodar este codigo. Obrigado

class Empresa {

    Funcionario[] dados;

    void imprimeDados() {

        for(int i = 0; i < this.dados.length; i++) {
            Funcionario funcionario = this.dados[i];
            System.out.println(this.dados[i]);
        }
    }
}

class Funcionario {

    String nome;
    String rg;
    double salario;
}

class TestaEmpresa {

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

    linux.funcionarios = new Funcionario();
    linux.funcionarios[0].nome = "Mauricio";
    linux.funcionarios[0].rg = "883123455";
    linux.funcionarios[0].salario = 2000.0;

    }
}
2 respostas
solução!

Olá Julian tudo bem?

Na sua classe TestaEmpresa você está acessando um atributo que não existe na sua classe Empresa.

Você declarou o atributo como dados e está se referindo a ele como funcionarios.

Exemplo:

Na linha onde tem a seguinte declaração: linux.funcionarios = new Funcionario[10];

O correto seria o seguinte: linux.dados = new Funcionario[10];

Basta substituir de funcionario para dados.

Além disso outro problema é nessa declaração aqui:

linux.funcionarios = new Funcionario();

O primeiro problema é o atributo funcionarios que já falei acima, mas tem um segundo problema. Mesmo que você altere para dados:

linux.dados = new Funcionario();

Vai gerar um erro pois o atributo dados é um array de Funcionario (Funcionario[]) e nesse caso você está atribuindo um objeto do tipo Funcionario. Creio que o que você gostaria de fazer seria atribuir à uma posição desse array um novo Funcionario.

Ficando assim:

linux.dados[0] = new Funcionario();

Espero ter ajudado.

Ola novamente, o codigo funcionou, mas ainda esta gerando erro no imprimir dados, ele me mostra como tudo null todas as posições

class Empresa {

    Funcionario[] dados;

    void imprimeDados() {

        for(int i = 0; i < this.dados.length; i++) {
            Funcionario funcionario = this.dados[i];
            System.out.println(this.dados[i]);
        }
    }
}

class Funcionario {

    String nome;
    String rg;
    double salario;
}

class TestaEmpresa {

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

    linux.dados[0] = new Funcionario();
    linux.dados[0].nome = "Mauricio";
    linux.dados[0].rg = "883123455";
    linux.dados[0].salario = 2000.0;

    linux.imprimeDados();

    }
}
insira seu código aqui
insira seu código aqui
insira seu código aqui
insira seu código aqui