Olá, Marcus.
Tudo bem?
Pelo que vejo, você está no caminho certo. Seu código está bem estruturado e parece que você entendeu bem o conceito de ArrayList e o método toString().
O método toString() que você sobrescreveu na classe Filme está correto. Ele retorna uma String formatada com o nome do filme e o ano de lançamento, que é exatamente o que se espera.
Agora, olhando para o seu código principal, você criou um ArrayList de Filmes, adicionou alguns filmes à lista e fez algumas operações de impressão. Quando você chama System.out.println(listaDeFilmes);
, o Java automaticamente chama o método toString() para cada objeto na lista, então você verá a saída formatada para cada filme.
A linha System.out.println("O primeiro filme foi: " + listaDeFilmes.get(0).toString());
também está correta. Aqui, você está explicitamente chamando o método toString() no primeiro filme da lista, que vai retornar a String formatada que você definiu na classe Filme.
A única coisa que eu sugeriria é que você poderia adicionar mais filmes à sua lista para testar ainda mais o seu código. Por exemplo:
listaDeFilmes.add(quartoFilme);
listaDeFilmes.add(quintoFilme);
E depois imprimir todos os filmes na lista:
for (Filme filme : listaDeFilmes) {
System.out.println(filme);
}
Isso vai imprimir todos os filmes na lista, cada um em sua própria linha, usando a formatação definida no método toString() que você sobrescreveu.
Espero ter ajudado e bons estudos!