Imprimindo Null usando Array

2 respostas
J

Eu estou resolvendo os exercícios da Apostila Caelum e pede para exibir o que está inserido no array, mas quando eu vou exibir ele retorna o valor null

public class Empresa {
    Funcionario[] empregados = new Funcionario[3];
    String cnpj = "[telefone removido]";
    String nomeEmpresa = "JJJ";
    String cidade = "JJ";
    String dono = "JJJJJJ";
    
    void adiciona(Funcionario funcionario){
        //this.empregados = funcionario;
        Scanner S = new Scanner (System.in);
        int cont2 = 1;
        for (int i = 0; i < empregados.length; i++){
            empregados[i] = new Funcionario();           
            funcionario.mostra();
            
            int cont = i;
            cont2 += 1;
            while (cont <2 ){
                System.out.println("Deseja adicionar outro usuario?");
                String resposta2 = S.next();
                
                if (resposta2.equals("sim")){
                    cont =3;
                }else{
                    i = 3;
                    cont = 3;
                }                      
            }

            if ( cont2 >= 4  ){
                System.out.println("\n Array Cheio");
            }
        }   
    }    

    void mostraEmpregados(){
        for(int i = 0; i < this.empregados.length; i++){
            System.out.println("Funcionário na posição: " +i);
            System.out.println(empregados[i].nome);
            empregados[i].exibe();
         
            
            
        }
    }
}
public class Funcionario {
    String nome;
    String departamento;
    double salario;
    String entradaBanco;
    String rg;
    Data dataEntrada = new Data();
    
    void recebeAumento(double quantidade){
        this.salario += quantidade;
    }
    
    double calculoGanhoAnual(){
        this.salario *= 12;
        return salario;
    }
    
    void mostra(){
        Scanner S = new Scanner(System.in);
        System.out.println("Digite o nome: ");
        this.nome = S.next();
        /*System.out.println("Digite o departamento: ");
        this.departamento = S.next();
        System.out.println("Digite o salário: ");
        this.salario = S.nextDouble();
        System.out.println("Digite o RG: ");
        this.rg = S.next();        
        this.dataEntrada.pegaValor();
        /*System.out.println(this.nome);
        System.out.println(this.departamento);
        System.out.println(this.salario);
        System.out.println(this.rg);
        this.dataEntrada.formatada();
        */
    }
    
    void exibe(){
        System.out.println(this.nome);
        /*System.out.println(this.departamento);
        System.out.println(this.salario);
        System.out.println(this.rg);
        this.dataEntrada.formatada();*/
    }
}
public class testeFuncionario {
    public static void main (String[] args){
        Funcionario funcionario = new Funcionario();
        Empresa empresa = new Empresa();
        empresa.adiciona(funcionario);
        empresa.mostraEmpregados();
   }
}

Eu sei que tá bagunçado, mas é que eu coloco muitas anotações para acelerar os testes!

2 Respostas

G

@jovino

void adiciona(Funcionario funcionario){ //this.empregados = funcionario; Scanner S = new Scanner (System.in); int cont2 = 1; for (int i = 0; i < empregados.length; i++){ empregados[i] = new Funcionario(); funcionario.mostra()

porque você esta criando um new Funcionario(); ?
e depois esta utilizando a referencia passada pelo metodo ?

acho que deveria ser:

empregados[i] = funcionario;

veja que você adicionou no array uma NOVA instancia de funcionario e não o que você esta acessando.

outro detalhe é o seu contador para a empresa,

tente utilizar a cont como uma variavel de instancia, caso contrario voce não tera um real controle depois que o metodo adicionar for finalizado.

deu pra sacar ?

J

Essa dica sua ajudou na construção do projeto. Mas aí um colega meu veio aqui e conseguiu sanar outras dúvidas. O que estava acontecendo era que eu estava instanciando novamente ele zerava depois de cada FOR. Vlw pela ajuda!

Criado 23 de outubro de 2013
Ultima resposta 24 de out. de 2013
Respostas 2
Participantes 2