1
resposta

Faça como eu fiz: ArrayList e toString

**Na minha superclasse Tipo, eu havia criado um método construtor para todos os atributos, fiz uma alteração e criei outro construtor apenas para inicializar objetos com apenas dois atributos, e assim ficou cada uma das classes com dois construtores, um para colocar todas as informações e outro resumido: **

 public Tipo(String nome, Integer anoLancamento, String sinopse, Boolean incluidoNoPlano, Double avaliacao, Integer duracaoEmMinutos) {
        this.nome = nome;
        this.anoLancamento = anoLancamento;
        this.sinopse = sinopse;
        this.incluidoNoPlano = incluidoNoPlano;
        this.avaliacao = avaliacao;
        this.duracaoEmMinutos = duracaoEmMinutos;
    }
public Tipo(String nome, Integer anoLancamento){
        this.nome = nome;
        this.anoLancamento = anoLancamento;
}
public Filme(String nome, Integer anoLancamento, String sinopse, Boolean incluidoNoPlano, Double avaliacao, String diretor, Integer duracaoEmMinutos) {
        super(nome, anoLancamento, sinopse, incluidoNoPlano, avaliacao, duracaoEmMinutos);
        this.diretor = diretor;
    }
    public Filme(String nome, Integer anoLancamento){
        super(nome, anoLancamento);
    }

**Após isso eu consegui sobrecarregar o método toString, alterando a visualização dele, e poder criar o último objeto, adicionar os 3 no Vetor e poder mostrá-los na execução, o nome do filme e o ano de seu lançamento: **

@Override
    public String toString(){
        return "Nome do Filme:" + getNome() + ", Ano: " + getAnoLancamento();
    }
import screenmatch.modelos.Filme;

import java.util.ArrayList;

public class Principal {
    public static void main(String[] args) {
        Filme filme1 = new Filme("Interestelar", 2015, "Um grupo de exploradores viaja através de um buraco de minhoca em busca de um novo lar para a humanidade.", true,8.7, "Christopher Nolan",169);
        Filme filme2 = new Filme("Tropa de Elite", 2007, "Um capitão do BOPE tenta combater o tráfico de drogas no Rio de Janeiro.", true, 8.1, "José Padilha",115 );

        Filme f1 = new Filme("Cidade de Deus", 2002);
        ArrayList <Filme> listaFilmes = new ArrayList<>();

        listaFilmes.add(filme1);
        listaFilmes.add(filme2);
        listaFilmes.add(f1);
        System.out.println(listaFilmes.toString());
    }
}
1 resposta

Olá Paulo! Tudo certo?

A ideia de ter múltiplos construtores é ótima para oferecer flexibilidade na criação de objetos, permitindo inicializar apenas os atributos necessários em diferentes contextos.

O seu código na classe Principal parece estar bem estruturado. Você criou uma lista de filmes, adicionou os objetos Filme a ela e, ao imprimir a lista, o método toString() de cada objeto está sendo chamado, exibindo as informações conforme esperado.

Caso você queira personalizar ainda mais a saída, você poderia adicionar mais informações no método toString(), como o diretor ou a sinopse, dependendo de como deseja apresentar os dados.

Se você encontrar algum problema específico ao rodar o código, como exceções ou saídas inesperadas, não hesite em compartilhar para que possamos ajudar a depurar.

Bons estudos!