Ir ao conteúdo
  • Cadastre-se

Java Código em Java para Iniciantes


The Gu

Posts recomendados

Estou com dificuldade em fazer um código em Java. O exercicio é o seguinte:
Crie uma classe Pessoa com os seguintes atributos, nome, eMail, telefone, endereço. Em outra classe, criar uma lista de até 10 pessoas, o usuário deverá informar os dados de cada pessoa. E o programa deverá questionar, continuar cadastrando? Ao final mostrar a lista de usuários cadastrados.

Abaixo a classe Pessoa:

public class Pessoa {
String email;
String nome;
String endereco;
int telefone;
/*public Pessoa( String nome, String email, String endereco, int telefone) {
this.nome = nome;
this.email = email;
this.endereco=endereco;
this.telefone=telefone;
} */
String definirNome(String nome){
return this.nome=nome;
}
String definirEmail(String email){
return this.email=email;
}
String definirEndereco(String endereco){
return this.endereco=endereco;
}
int definirTelefone(int telefone){
return this.telefone=telefone;
}
}

Abaixo classe Cadastro

public class Cadastro {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
Pessoa registro=new Pessoa();
int num=0;
int cont = 0;
String email = null;
String nome = null;
String endereco = null;
int telefone = 0;
System.out.println("---------------------------Cadastros-----------------------------");
do{
System.out.println(“Digite o seu nome”);
nome= registro.definirNome(input.nextLine());
System.out.println(“Digite o seu email”);
email= registro.definirEmail(input.nextLine());
System.out.println(“Digite o seu endereço completo”);
endereco= registro.definirEndereco(input.nextLine());
System.out.println(“Digite o seu telefone”);
telefone= registro.definirTelefone(input.nextInt());
System.out.println(“Deseja registrar novas pessoas? Se sim digite 1, caso contrário 0.”);
num=input.nextInt();
if(num==0){
cont++;
break;
}
}while(num!=0);

    for(int i=0;i<cont;i++){
        System.out.println("Nome: "+nome);
        System.out.println("Email: "+email);
        System.out.println("Endereço: "+endereco);
        System.out.println("Telefone: "+telefone);
        System.out.println("");
    }
}
}

Meu código compila, porém não sei como armazenar vários cadastros dentro do objeto Pessoa.
Também, outra dúvida é que consigo digitar as info para as pessoas, mas na segunda execução do loop do while, o mesmo pula o “Digite seu nome” e pede para “Digite o seu email”.
Agradeço pela ajuda

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bom dia The Gu, vamos a algumas observações.


Primeiro sugiro a você dar uma olhada na parte de encapsulamento no java.

Segundo criar os métodos Getters e Setters dos atributos da classe pessoa
ao invés dos métodos (String definirNome(String nome))etc.

Exemplo:

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

crie os métodos para todos os atributos. Acredito que fique mais claro pra você.

Próximo passo! você nao precisa das variáveis email, nome, endereço etc, pois você
ja tem o objeto Pessoa (registro) que irá armazenar os dados.

Você precisará de uma lista de Pessoa para guardar os objetos, como esta dizendo no
exercício.

List<Pessoa> lista = new ArrayList<Pessoa>();

O que você irá fazer é!

1 - Criar o objeto lista do tipo List.
2 - Criar o objeto registro do tipo pessoa.
3 - Dentro do laço (do while) faça o seguinte!

do {
    registro = new Pessoa(); // Crie uma nova pessoa

    System.out.println("Digite o seu nome");
    registro.setNome(input.nextLine());  // Seta o valor lido para dentro do atributo nome do objeto pessoa

    // No final quando você preencher todos os dados da pessoa,
    // você deverá coloca-la na lista criada acima.

    lista.add(pessoa);

    // Note que toda vez que você for adicionar uma nova pessoa, será dado 
    // um new no objeto registro, porém nao poderá dar um new no objeto lista dentro do
    // laço senao perderá todos os dados.

} while(num != 0);
		

	

Para mostrar os dados faça o loop na lista de pessoas

 

for(Pessoa p : lista){	
	System.out.println("Nome: "+p.getNome());		
}

Observe que quando você está preenchendo o objeto, você está usando o método
set (setNome()) e quando você vai mostrar os dados você utiliza o
metodo get (getNome())    


Não irei postar todo o codigo senao você nao aprenderá. Qualquer dúvida post ai.
espero ter ajudado.

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!