1
resposta

Projeto de Encapsulando

Código Filme.java

package br.com.alura.screenmacth.modelos;

public class Filme {
    private String nome;
    private int anoDeLancamento;
    private int duracaoEmMinutos;
    private boolean incluidoNoPlano;
    private double somaDasAvaliacoes;
    private int totalDeAvaliacoes;

    int getTotalDeAvaliacoes(){
        return totalDeAvaliacoes;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public void setAnoDeLancamento(int anoDeLancamento) {
        this.anoDeLancamento = anoDeLancamento;
    }

    public void setDuracaoEmMinutos(int duracaoEmMinutos) {
        this.duracaoEmMinutos = duracaoEmMinutos;
    }

    public void exibeFichaTecnica(){
        System.out.println("Nome do br.com.alura.screenmacth.modelos.Filme: " + nome);
        System.out.println("Ano de Lançamento: " + anoDeLancamento);
        System.out.println("Duração do FIlme:" + duracaoEmMinutos);
        System.out.println("br.com.alura.screenmacth.modelos.Filme incluso no Plano: " + incluidoNoPlano);
    }

    public void avalia(double nota){
        somaDasAvaliacoes += nota;
        totalDeAvaliacoes++;
    }

    public double pegaMedia(){
        return somaDasAvaliacoes/ totalDeAvaliacoes;
    }
}

Código Principal.java

package br.com.alura.screenmacth.modelos;

public class Filme {
    private String nome;
    private int anoDeLancamento;
    private int duracaoEmMinutos;
    private boolean incluidoNoPlano;
    private double somaDasAvaliacoes;
    private int totalDeAvaliacoes;

    int getTotalDeAvaliacoes(){
        return totalDeAvaliacoes;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public void setAnoDeLancamento(int anoDeLancamento) {
        this.anoDeLancamento = anoDeLancamento;
    }

    public void setDuracaoEmMinutos(int duracaoEmMinutos) {
        this.duracaoEmMinutos = duracaoEmMinutos;
    }

    public void exibeFichaTecnica(){
        System.out.println("Nome do br.com.alura.screenmacth.modelos.Filme: " + nome);
        System.out.println("Ano de Lançamento: " + anoDeLancamento);
        System.out.println("Duração do FIlme:" + duracaoEmMinutos);
        System.out.println("br.com.alura.screenmacth.modelos.Filme incluso no Plano: " + incluidoNoPlano);
    }

    public void avalia(double nota){
        somaDasAvaliacoes += nota;
        totalDeAvaliacoes++;
    }

    public double pegaMedia(){
        return somaDasAvaliacoes/ totalDeAvaliacoes;
    }
}
1 resposta

Olá, Kauã. Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.

Gostei do cuidado que você teve ao encapsular os atributos da classe Filme com private e fornecer métodos para alterar os valores. Esse é um ponto chave da orientação a objetos. Além disso, os métodos avalia e pegaMedia mostram bem a ideia de manter a lógica dentro da própria classe.

Uma dica interessante para o futuro é usar o método toString para personalizar a forma como o objeto será impresso. Veja este exemplo:


@Override
public String toString() {
    return "Filme: " + nome + ", lançado em " + anoDeLancamento;
}

Esse código substitui a forma padrão de exibir o objeto por algo mais legível. Isso ajuda bastante em testes e logs.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!