Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

ArrayList e toString

package br.com.alura.screenmatch.modelos;

import br.com.alura.screenmatch.calculos.Classificavel;

public class Filme extends Titulo implements Classificavel{ private String diretor; public String getDiretor() { return diretor; } public void setDiretor(String diretor) { this.diretor = diretor; }

@Override
public int getclassificacao() {
    return (int) pegaMedia() / 2;
}

@Override
public String toString() {
    return "Filme : " + this.getNome() + "( " + this.getAnoDeLancamento() + ") ";
}

} package br.com.alura.screenmatch.modelos; import br.com.alura.screenmatch.calculos.CalculadoraDeTempo; import br.com.alura.screenmatch.calculos.FiltroRecomencao; import br.com.alura.screenmatch.modelos.Filme;

import java.util.ArrayList;

public class Principal { private static Filme Serie; public static void main(String[] args) {

    Filme meuFilme = new Filme();
    meuFilme.setNome("Jonh Wick 4");
    meuFilme.setAnoDeLancamento(2023);
    meuFilme.setDuracaoEmMinutos(180);
    meuFilme.setIncluidoNoPlano(true);

    meuFilme.exibeFichaTecnica();
    meuFilme.avalia(8);
    meuFilme.avalia(5);
    meuFilme.avalia(10);

    //System.out.println("Nota do Filme: " + meuFilme.somaDasAvaliacoes);
    System.out.println("Duração do Filme:" + meuFilme.getDuracaoEmMinutos());
    System.out.println("Quantidade de Avalições: " + meuFilme.getTotalDeAvaliacao());
    System.out.printf("Media das Avaliações: %.1f\n ", meuFilme.pegaMedia());

    //meuFilme.somaDasAvaliacoes = 10;
    //meuFilme.totalDeAvaliacao = 1;
    // System.out.println( meuFilme.pegaMedia());

    System.out.println(" ");
    Serie lost = new Serie();
    lost.setNome("Lost");
    lost.setAnoDeLancamento(2000);
    lost.exibeFichaTecnica();
    lost.setTemporadas(10);
    lost.setEpisodiosPorTemporada(10);
    lost.setMinutosPorEpisodio(50);
    System.out.println("Tempo para Maratonar Lost:" +lost.getDuracaoEmMinutos() + " Minutos");

    Filme outroFilme = new Filme();
    outroFilme .setNome("Jonh Wick 3");
    outroFilme .setAnoDeLancamento(2021);
    outroFilme .setDuracaoEmMinutos(120);

    CalculadoraDeTempo calculadora = new CalculadoraDeTempo();
    calculadora.inclui(meuFilme);
    calculadora.inclui(outroFilme);
    calculadora.inclui(lost);
    System.out.println(calculadora.getTempoTotal());

    FiltroRecomencao filtro = new FiltroRecomencao();
    filtro.filtrar(meuFilme);
    Episodio episodio = new Episodio();
    episodio.setNumero(1);
    episodio.setSerie(lost);
    episodio.setTotalVizualizacoes(200);
    filtro.filtrar(episodio);

    var filmeDaRejane = new Filme();
    filmeDaRejane.setNome("Escolha Perfeita" );
    filmeDaRejane.setAnoDeLancamento(2015);
    filmeDaRejane.setDuracaoEmMinutos(180);
    filmeDaRejane.avalia(8);

    // CRIANDO UMA LISTA DE FILMES.
    ArrayList<Filme> listaDeFilmes = new ArrayList<>();

    listaDeFilmes.add(meuFilme);
    listaDeFilmes.add(outroFilme);
    listaDeFilmes.add(filmeDaRejane);
    System.out.println("Lista de Filmes: " + listaDeFilmes.size());
    System.out.println("Primeiro Filme. " +listaDeFilmes.get(0).getNome());
    System.out.println("toString do filme. " + listaDeFilmes.get(0).toString());
    System.out.println(listaDeFilmes);
}

}

1 resposta
solução!

Olá!

Você fez um ótimo trabalho seguindo as instruções da aula! Você sobrescreveu corretamente o método toString() na classe Filme e também modificou a classe Principal para criar uma lista de filmes.

A saída do System.out.println(listaDeFilmes); será uma representação de string da lista de filmes, onde cada filme será representado pela string retornada pelo método toString() que você sobrescreveu na classe Filme.

Por exemplo, se a lista de filmes contém o filme "Jonh Wick 4", o output será algo como:

[Filme : Jonh Wick 4( 2023 )]

Isso ocorre porque a implementação padrão do método toString() em ArrayList chama o método toString() de cada um de seus elementos e os concatena em uma string, com cada elemento separado por vírgulas e a string inteira entre colchetes.

Bons estudos!