Olá, Bernardo. Como vai?
Parabéns pela resolução da atividade! O seu código está simplesmente fantástico e demonstra uma evolução muito legal desde o último exercício de encapsulamento.
Desta vez, você aplicou o conceito de maneira perfeita:
- Atributos privados: O uso do modificador
private em nome e numero garantiu a proteção correta dos dados da classe Contato. - Uso correto do
toString(): Sobrescrever o método @Override public String toString() foi uma decisão excelente. Isso limpou o código do seu método main, permitindo que ao chamar contatos.get(i) o Java já entenda exatamente o formato de texto que deve imprimir. - Manipulação de Coleções: A utilização do
ArrayList com tipo genérico <Contato> e a lógica do laço for estruturaram muito bem a listagem da agenda.
Para agregar ainda mais valor ao seu código e trazer boas práticas adotadas pelo mercado de desenvolvimento Java, deixo duas sugestões bem bacanas:
1. Programar voltado para Interfaces
No Java, quando utilizamos coleções como o ArrayList, é uma convenção muito forte declarar a variável utilizando a interface mais genérica (no caso, List), importada de java.util.List. Isso traz flexibilidade ao código, pois se no futuro você decidir mudar de ArrayList para LinkedList, só precisará alterar o lado direito da atribuição.
Veja como fica a linha modificada:
// Boa prática de mercado: declarar como List e instanciar como ArrayList
List<Contato> contatos = new ArrayList<>();
2. Explorando o laço For-Each ou Streams (Opcional)
Como o seu objetivo no for foi exibir os números ordenados de 1 até 3, a sua lógica com o contador (i + 1) ficou excelente. Caso o foco do relatório fosse apenas listar os contatos sem a numeração na frente, o Java possui uma sintaxe muito mais limpa chamada For-Each, que dispensa a necessidade de usar índices:
// Exemplo de iteração mais limpa (caso não precise exibir o número "1.", "2.", etc.)
for (Contato contato : contatos) {
System.out.println(contato);
}
O seu código cumpre com maestria o objetivo do desafio e os pilares de um código encapsulado e bem estruturado.
Continue com esse ótimo ritmo de prática e estudos!
Espero que possa ter lhe ajudado!