1
resposta

exibeFichaTecnica

Primeiramente estou gostando muito do curso e aprendendo bastante as características de OO.

Então como vi meus colegas de curso perguntando sobre essa função exibeFichatécnica(), qual seria a melhor forma de programação para mostrar ao usuário todas as suas características

Seria fazer um exibe ficha técnica em cada classe? Ou teria uma forma de deixar na classe titulo e conseguirimos fazer a diferença se seria um filme ou uma série/?

1 resposta

Bom dia, Antonio! Tudo bem?

Fico feliz em saber que você está gostando do curso e aprendendo bastante sobre Orientação a Objetos! Sobre a sua dúvida, a melhor forma de implementar a função exibeFichaTecnica() depende do design do seu sistema.

No contexto que você mencionou, onde filmes e séries compartilham várias características, faz sentido usar a herança para evitar código repetido. Você pode criar uma classe base chamada Titulo, que contém todos os atributos e métodos comuns, incluindo o método exibeFichaTecnica(). Assim, tanto a classe Filme quanto a classe Serie podem herdar de Titulo e ter suas próprias implementações específicas, se necessário.

Por exemplo, na classe Titulo, você pode implementar o método exibeFichaTecnica() de forma genérica:

public class Titulo {
    private String nome;
    private int anoDeLancamento;

    public void exibeFichaTecnica() {
        System.out.println("Nome: " + nome);
        System.out.println("Ano de lançamento: " + anoDeLancamento);
    }
}

Se houver informações específicas que precisam ser exibidas para filmes ou séries, você pode sobrescrever o método exibeFichaTecnica() nessas classes. Por exemplo, na classe Filme, você poderia adicionar o nome do diretor:

public class Filme extends Titulo {
    private String diretor;

    @Override
    public void exibeFichaTecnica() {
        super.exibeFichaTecnica();
        System.out.println("Diretor: " + diretor);
    }
}

E na classe Serie, você poderia adicionar informações sobre temporadas e episódios:

public class Serie extends Titulo {
    private int temporadas;
    private int episodiosPorTemporada;

    @Override
    public void exibeFichaTecnica() {
        super.exibeFichaTecnica();
        System.out.println("Temporadas: " + temporadas);
        System.out.println("Episódios por temporada: " + episodiosPorTemporada);
    }
}

Dessa forma, você mantém o código organizado e evita duplicação, aproveitando o poder da herança para compartilhar funcionalidades comuns.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.