Dúvida: Construtor + criação de objetos

7 respostas
W

Olá! o/

Estou fazendo um exercicío que pede a construção de uma classe pessoa com nome, idade e CPF:

class Pessoa
{
   private String nome;
   private Integer idade;
   private Integer CPF;

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

E depois tenho que fazer um construtor para a classe:

public Pessoa(String nome, Integer idade, Integer CPF) {
       this.nome = nome;
       this.idade = idade;
       this.CPF = CPF;
   }

A dúvida é como eu faço para o usuário cadastrar pessoas, pois o construtor
requere, qdo há a criação do objeto “new Pessoa()”, a inserção dos atributos
da pessoa no próprio código.

Agradeço desde já! :slight_smile:

7 Respostas

rafarcm

Bom não entendi bem a sua dúvida mas para criar o objeto voce faria assim

new Pessoa(“João”, new Integer(22), new Integer[telefone removido]));

devel.andrerocha

Para exemplificar crie um static void main…

public static void main(String []args){
 //criando uma instancia da classe
 Pessoa p = new Pessoa('Andre', new Integer(24), new Integer(111111));
 
}

…assim você já possui uma instancia da sua classe pronta para ser usada…e caso queira alterar algum dado é só usar seus métodos publicos…por exemplo:

public static void main(String []args){
 //criando uma instancia da classe
 Pessoa p = new Pessoa('Andre', new Integer(24), new Integer(111111));
//alterando a idade 
 p.setIdade(new Integer(25));

 //escrevendo na tela os dados
System.out.println("Nome :"+p.getNome()+" idade: "+p.getIdade()+" Cpf: "+p.getCpf()); 
}

Caso queira ter a possibilidade de criar objetos vazios…sem é so adicionar um construtor vazio na sua classe Pessoa…

public Pessoa(){
}

Entendeu??..a criação do objeto ‘New pessoa’ ocorre na quando você instancia ela…seja num void main ou em outra classe qualquer…com essa instancia você dá segmento no processo…dá uma estudada melhor sobre POO…tem bastante coisa na net sobre isso…sua duvida é comum pra quem ta começando…mas é importante ler um pouco pra entender…

V

Se vc usar sobrecarga, não precisa cadastrar logo que cria os objetos, mas se mesmo assim vc quiser cadastrar na criação do objeto, e so fazer assim.

pessoa = new Pessoa(“Teste”, 27,025468314);

Depois da uma lida em sobrecarga de metodos, mas para o seu construtor a sobre carga seria assim

public Pessoa(){}

Assim vc nao precisa cadastrar na criação do objeto.

Espero ter te ajudado, t+.

W

Opa, vlw pela explicação...!

Mas a dúvida mesmo, é como eu crio um array de objetos pessoa
onde um usuário pode inserir várias pessoas com seus atributos.

O construtor me confunde, pois sem ele fica fácil.
class Cadastros 
{
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        Pessoa[] pessoa = new Pessoa[3];
    
        System.out.println ("Programa de cadastros");
        
        for(int i=0; i<pessoa.length; i++) {
            pessoa[i] = new Pessoa();
            System.out.print("Digite o nome: ");
            pessoa[i].setNome(s.nextLine());
            System.out.print("Digite a Idade: ");
            pessoa[i].setIdade(s.nextInt());
            System.out.print("Digite o CPF: ");
            pessoa[i].setCPF(s.nextInt());
        }
        
        for(int i=0; i<pessoa.length; i++) {
            System.out.println("Nome: "+pessoa[i].getNome());
            System.out.println("Idade: "+pessoa[i].getIdade());
            System.out.println("CPF: "+pessoa[i].getCPF());
        }
       

    }
}

Então, aí na linha 10 "pessoa[i] = new Pessoa();" ele terá um construtor,
portanto não dá para inserir desse jeito.

:?:

peczenyj

O construtor não deveria confundir pois a regra é clara: se vc não declarou nenhum existe o construtor padrão. Se vc declarou algum não precisa do construtor padrão.

O resto é experiência :slight_smile:

fabim
class Cadastros 
{
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        Pessoa[] pessoa = new Pessoa[3];
    
        System.out.println ("Programa de cadastros");
        
        String nome;
        int idade;
        String cpf;
        for(int i=0; i<pessoa.length; i++) {
            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());
            pessoa[i] = new Pessoa(nome, idade, cpf);
        }
        
        for(int i=0; i<pessoa.length; i++) {
            System.out.println("Nome: "+pessoa[i].getNome());
            System.out.println("Idade: "+pessoa[i].getIdade());
            System.out.println("CPF: "+pessoa[i].getCPF());
        }
       

    }
}
W

Opa, vlw fabin!

Agora sim aprendi a usar o construtor com entrada de dados :smiley:

Agradeço a todos pelas respostas o/

Criado 24 de outubro de 2008
Ultima resposta 24 de out. de 2008
Respostas 7
Participantes 6