Resolvemos a questão das referencias na aula usando Instance.of e foi dito que não é a forma recomendada. Tendo isso em mente, qual seria a forma ideal de tratar esse problema, antes ou depois da Lista de Títulos já estar criada?
Resolvemos a questão das referencias na aula usando Instance.of e foi dito que não é a forma recomendada. Tendo isso em mente, qual seria a forma ideal de tratar esse problema, antes ou depois da Lista de Títulos já estar criada?
Olá Jonas, tudo bem?
A forma ideal de lidar com essa situação seria através do uso de polimorfismo, um dos pilares da programação orientada a objetos. No seu caso, como você está lidando com uma lista de títulos que podem ser filmes ou séries, o ideal seria ter um método na classe pai (neste caso, a classe Título) que possa ser sobrescrito nas classes filhas (Filme e Série).
Por exemplo, você poderia ter na classe Título um método chamado exibirClassificacao()
. Este método não faria nada na classe Título, mas seria sobrescrito na classe Filme para exibir a classificação do filme. Assim, você poderia percorrer a lista de títulos e chamar o método exibirClassificacao()
para cada item, sem precisar verificar se o item é um filme ou uma série.
Aqui está um exemplo de como ficariam as classes:
public class Titulo {
public void exibirClassificacao() {
// não faz nada
}
}
public class Filme extends Titulo {
private int classificacao;
public Filme(int classificacao) {
this.classificacao = classificacao;
}
@Override
public void exibirClassificacao() {
System.out.println("Classificação: " + this.classificacao);
}
}
E aqui está como você poderia percorrer a lista:
for (Titulo item: lista){
item.exibirClassificacao();
}
Dessa forma, você não precisa se preocupar se o item é um filme ou uma série, pois o polimorfismo garante que o método correto será chamado para cada tipo de objeto.
Espero ter ajudado e bons estudos!