Olá,
Segue a minha ideia de resposta para o desafio proposto.
Para a classe Pessoa utilizei o seguinte código:
public class Pessoa {
private String nome;
private int idade;
public Pessoa (String nome, int idade) {
this.nome = nome;
this.idade = idade;
}
@Override
public String toString() {
return "Nome: " + this.nome + "\nIdade: " + this.idade;
}
}
E já na classe Main:
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
Pessoa pessoa = new Pessoa("José da Silva", 25);
System.out.println(pessoa.toString());
var outraPessoa = new Pessoa("Maria da Silva", 50);
var maisUmaPessoa = new Pessoa("José de Oliveira", 33);
ArrayList<Pessoa> listaDePessoas = new ArrayList<>();
listaDePessoas.add(pessoa);
listaDePessoas.add(outraPessoa);
listaDePessoas.add(maisUmaPessoa);
System.out.println("O tamanho da lista é de " + listaDePessoas.size());
System.out.println("A primeira pessoa é " + listaDePessoas.get(0));
System.out.println(listaDePessoas.toString());
for (int i = 0; i < listaDePessoas.size(); i++) {
System.out.println(listaDePessoas.get(i));
}
}
}
No momento da elaboração do construtor inicialmente me esqueci de incluir as atribuições dos parâmetros com o método "this.", o que fiz posteriormente e foi um apontamento importante para me atentar futuramente.
Por outro lado, não compreendi o laço de repetição utilizado na sugestão do exercício, embora pareça uma solução bem mais prática e ágil:
for (Pessoa pessoa : listaDePessoas) {
System.out.println(pessoa);
}