Dúvida Exercício Programação Java

4 respostas
java
jcbonamigo

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!

4 Respostas

D

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.

TerraSkilll

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.

jcbonamigo

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

Se os atributos são public então não tem necessidade de fazer métodos get.

Criado 2 de abril de 2022
Ultima resposta 4 de abr. de 2022
Respostas 4
Participantes 4