1
resposta

[Projeto] Encapsulando o projeto

public class Filme {
    private String nome;
    private int anoDeLancamento;
    private boolean invluidoNoPlano;
    private double somaDeAvaliacoes;
    private int totalDeAvaliacoes;
    private int duracaoEmMinutos;

    public String getNome() {
        return nome;
    }

    public int getAnoDeLancamento() {
        return anoDeLancamento;
    }

    public boolean isInvluidoNoPlano() {
        return invluidoNoPlano;
    }

    public int getDuracaoEmMinutos() {
        return duracaoEmMinutos;
    }

    public int getTotalDeAvaliacoes(){
        return totalDeAvaliacoes;
    }

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

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

    public void setInvluidoNoPlano(boolean invluidoNoPlano) {
        this.invluidoNoPlano = invluidoNoPlano;
    }

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

    public void exibeFichaTecnica(){
        System.out.println("Nome do filme: " + nome);
        System.out.println("Ano de Lançamento:" + anoDeLancamento);
        System.out.println("Duração em minutos: " + duracaoEmMinutos);
        System.out.println("Incluido no plano: " + invluidoNoPlano);
    }

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

    public double pegaMedia(){
        return somaDeAvaliacoes / totalDeAvaliacoes;

    }

}
public class Principal {
    public static void main(String[] args) {
        Filme meuFilme = new Filme();
        meuFilme.setNome("O poderoso chefão");
        meuFilme.setAnoDeLancamento(1970);
        meuFilme.setDuracaoEmMinutos(100);
        meuFilme.setInvluidoNoPlano(true);


        meuFilme.exibeFichaTecnica();
        meuFilme.avalia(8);
        meuFilme.avalia(5);
        meuFilme.avalia(10);
        System.out.println("Média de avaliações: " + meuFilme.pegaMedia());


    }
}

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, Enzo! Como vai?

Agradeço por compartilhar.

Gostei da forma como você encapsulou os atributos e criou os métodos getters e setters. Isso mostra que entendeu bem o conceito de controle de acesso dentro da Orientação a Objetos. O método pegaMedia() e a forma como incrementou as avaliações estão bem implementados.

Continue praticando e testando seus códigos, pois essa é uma excelente maneira de consolidar o aprendizado.

Dica: revise o nome do atributo invluidoNoPlano, que pode ter um pequeno erro de digitação, talvez quisesse escrever incluidoNoPlano, para manter o código mais claro.

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