Dúvida em array de objetos: Exclusão e Impressão

5 respostas
W

Olá para todos! o/

Estou com uma dúvida com relação a um array de objetos que tem, por exemplo, 10 cadastros.
Se eu uso o índice para deletar um cadastro colocando ‘null’ no lugar, quando eu imprimo
os cadastros na tela, ele resulta em “Exception in thread “main” java.lang.NullPointerException”
no local onde há o ‘null’.

Gostaria de saber como eu faço para ‘deletar’ um cadastro sem que dê esse erro na hora da impressão :frowning:

5 Respostas

0

mande seu código aí, talves posso te ajudar

abraços

0

mande seu código aí, talves posso te ajudar, é q não entendi muito bem o que vc fez

Abraços

W
Aí vai o código:
class Pessoa
{
   private String nome;
   private Integer idade;
   private Integer CPF;
   private Endereco endereco;

   public String getNome() {
	return nome;
   }

   public void setNome(String nome) {
	this.nome = nome;
   }

   public Integer getIdade() {
	return idade;
   }

   public void setIdade(Integer idade) {
	this.idade = idade;
   }

   public Integer getCPF() {
	return CPF;
   }

   public void setCPF(Integer CPF) {
	this.CPF = CPF;
   }

   public Endereco getEndereco() {
	return endereco;
   }

   public void setEndereco(Endereco endereco) {
	this.endereco = endereco;
   }
   
   public Pessoa(String nome, Integer idade, Integer CPF, Endereco endereco) {
       this.nome = nome;
       this.idade = idade;
       this.CPF = CPF;
       this.endereco = endereco;
   }
   
}
class Endereco
{
   private String estado;
   private String cidade;
   private String bairro;
   private String rua;
   private Integer CEP;
   private Integer telefone;

   public String getEstado() {
	return estado;
   }

   public void setEstado(String estado) {
	this.estado = estado;
   }

   public String getCidade() {
	return cidade;
   }

   public void setCidade(String cidade) {
	this.cidade = cidade;
   }

   public String getBairro() {
	return bairro;
   }

   public void setBairro(String bairro) {
	this.bairro = bairro;
   }

   public String getRua() {
	return rua;
   }

   public void setRua(String rua) {
	this.rua = rua;
   }

   public Integer getCEP() {
	return CEP;
   }

   public void setCEP(Integer CEP) {
	this.CEP = CEP;
   }

   public Integer getTelefone() {
	return telefone;
   }

   public void setTelefone(Integer telefone) {
	this.telefone = telefone;
   }

}
class Cadastros 
{    
        Scanner s = new Scanner(System.in);
        Pessoa[] pessoa = new Pessoa[100];
        Endereco endereco = new Endereco();
        private String nome;
        private Integer idade, cpf, j, i=0;
        
        void Cadastrar() {
            System.out.print("Digite o nome: ");
            nome = s.nextLine();
            System.out.print("Digite a Idade: ");
            idade = s.nextInt();
            System.out.print("Digite o CPF: ");
            cpf = s.nextInt();
            System.out.print("");
            s.nextLine();
            System.out.println("Digite o Estado: ");
            endereco.setEstado(s.nextLine());
            System.out.println("Digite o Cidade: ");
            endereco.setCidade(s.nextLine());
            System.out.println("Digite o Bairro: ");
            endereco.setBairro(s.nextLine());
            System.out.println("Digite o Rua: ");
            endereco.setRua(s.nextLine());
            System.out.println("Digite o CEP: ");
            endereco.setCEP(s.nextInt());
            System.out.println("Digite o Tefefone: ");
            endereco.setTelefone(s.nextInt());
            pessoa[i] = new Pessoa(nome, idade, cpf, endereco);
            
            System.out.println("Cadastro "+(i+1)+" realizado...");
            s.nextLine();
            i++;
        }
        
        void Excluir() {
            System.out.print("Digite o indice para a exclusao: ");
            j = s.nextInt();
            pessoa[j] = null;
            System.out.println("Exclusao do cadastro "+(j+1)+" realizado...");
        }
        
        void Imprimir() {
            for(j=0; j<i; j++) {
                System.out.println("Cadastro "+(j+1));
                System.out.println("Nome: "+pessoa[j].getNome());
                System.out.println("Idade: "+pessoa[j].getIdade());
                System.out.println("CPF: "+pessoa[j].getCPF());
                System.out.println("Estado: "+pessoa[j].getEndereco().getEstado());
                System.out.println("Cidade: "+pessoa[j].getEndereco().getCidade());
                System.out.println("Bairro: "+pessoa[j].getEndereco().getBairro());
                System.out.println("Rua: "+pessoa[j].getEndereco().getRua());
                System.out.println("CEP: "+pessoa[j].getEndereco().getCEP());
                System.out.println("Telefone: "+pessoa[j].getEndereco().getTelefone());
                System.out.println("\n");
            }
            
        }
}

import java.util.Scanner;

public class M4E7 
{    
    public static void main(String[] args) {
        Cadastros cad = new Cadastros();
        Scanner s = new Scanner(System.in);
        int opc;
        
        do {
            System.out.println ("Programa de cadastros\nDigite:\n1 - Cadastramento" +
                "\n2 - Exclusao\n3 - Impressao\n4 - Sair\n");
            opc = s.nextInt();
        
            switch(opc) {
                case 1: cad.Cadastrar();break;
                case 2: cad.Excluir();break;
                case 3: cad.Imprimir();break;
            }
        } while(opc!=4);

    }
}

Quando eu excluo um cadastro e escolho para imprimir dá o erro.

:(

0

quando vc joga null para um cadastro não tem como vc mostra-lo

por exemplo…

como vc mostra pessoa[2].getNome()

não existe nenhum nome para null

0

tente reordenar o array

aí funcionara

Criado 24 de outubro de 2008
Ultima resposta 24 de out. de 2008
Respostas 5
Participantes 2