Tenho dúvida neste exercício, não entendo como fazer para armazenar 10 pessoas na classe agenda. Deveria:
- Utilizar vetor?
- ArrayList?
- Instanciar 10 objetos da classe Pessoa?
Estou fazendo o curso pela Udemy, outros exercícios eu consegui fazer, mas este não.
Obrigado!
Fala @jcbonamigo, beleza?
Cara, gostei desse exercício, bacaninha.
Eu acho que usaria um ArrayList de tamanho 10, isto é, um atributo pessoa do tipo ArrayList.
P.S. Acho, empiricamente, que ArrayList é um tipo de vetor.
1 curtida
Você pode usar qualquer uma das opções, só vai ter que ajustar seu código pra cada caso. E depende também se o material indica alguma solução específica, ou se deixa à seu critério.
Em termos gerais, a maneira mais simples seria usar ArrayList. Você pode tanto armazenar instâncias de uma classe Pessoa, que tem os atributos nome, idade e altura, quanto armazenar essas informações em três Arraylists diferentes. O Arraylist não tem tamanho fixo, então você precisa controlar quantos elementos existem antes de realizar as operações.
Também é possível usar um vetor de Pessoa (ou 3, um para cada atributo), com tamanho fixo em 10. Nesse caso, você precisa controlar não só quantos elementos, mas qual a próxima posição vazia ao realizar operações de inserir, além de mover os elementos quando faz uma remoção.
Ter 10 instâncias de Pessoa é possível, mas acaba gerando um monte de ifs pra saber qual está preenchida ou não, em qualquer uma das operações que você quiser realizar. Eu não recomendo.
Abraço.
1 curtida
Desenvolvi parte da minha solução, gostaria de uma opinião, para saber se estou no caminho correto. E também tenho uma dúvida:
Tem como criar os objetos Pessoa, de uma maneira mais automática, porque assim, teria que criar 10 instâncias suando néh…
Valeu!
import java.util.ArrayList;
import java.util.Scanner;
public class ProgramaAgenda {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
Pessoa pessoa1 = new Pessoa();
Pessoa pessoa2 = new Pessoa();
Pessoa pessoa3 = new Pessoa();
ArrayList<Pessoa> contato = new ArrayList<Pessoa>();
System.out.println("Informe o 1º contato da sua agenda: \nNome:");
pessoa1.nome = entrada.next();
System.out.println("Idade: ");
pessoa1.idade = entrada.nextInt();
System.out.println("Altura: ");
pessoa1.altura = entrada.nextFloat();
contato.add(pessoa1);
System.out.println("Informe o 2º contato da sua agenda: \nNome:");
pessoa2.nome = entrada.next();
System.out.println("Idade: ");
pessoa2.idade = entrada.nextInt();
System.out.println("Altura: ");
pessoa2.altura = entrada.nextFloat();
contato.add(pessoa2);
System.out.println("Informe o 3º contato da sua agenda: \nNome:");
pessoa3.nome = entrada.next();
System.out.println("Idade: ");
pessoa3.idade = entrada.nextInt();
System.out.println("Altura: ");
pessoa3.altura = entrada.nextFloat();
contato.add(pessoa3);
entrada.close();
for (Pessoa meuContato : contato) {
System.out.println(meuContato.getNome());
System.out.println(meuContato.getIdade());
System.out.println(meuContato.getAltura());
}
}
}
public class Pessoa {
public String nome;
public int idade;
public float altura;
public Pessoa() {
}
public String getNome() {
return nome;
}
public int getIdade() {
return idade;
}
public float getAltura() {
return altura;
}
}
Se os atributos são public
então não tem necessidade de fazer métodos get
.
1 curtida