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

Projeto: Orientação a Objetos em Java

Class Filme:

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


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

    void setAno (int ano){
        this.anoDeLancamento = ano;
    }

    int getAno(){
        return anoDeLancamento;
    }

    void setDuracao (int duracao){
        this.duracaoEmMinutos = duracao;
    }

    int getDuracao(){
        return duracaoEmMinutos;
    }

    private boolean getPlano(){
        if (anoDeLancamento >= 2022){
            incluidoNoPlano = false;
            return incluidoNoPlano;
        }
        incluidoNoPlano = true;
        return incluidoNoPlano;
    }

    private int getTotalAvaliacoes(){
        return totalAvaliacoes;
    }

    void exibirFichaTecnica(){
        System.out.printf("Nome do Filme: %s", getNome());
        System.out.printf("\nAno de lançamento: %d", getAno());
        System.out.printf("\nDuraçao: %d minutos", getDuracao());
        System.out.printf("\nIncluido no plano: %b", getPlano());
        System.out.printf("\nTotal de avaliaçoes: %d", getTotalAvaliacoes());
        System.out.printf("\nMédia Geral: %.1f ", pegaMedia());
    }

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

   private double pegaMedia(){
        if (totalAvaliacoes == 0){
            return 0;
        }
        return somaDasAvaliacoes / totalAvaliacoes;
    }
}

Class Principal:

public class Principal {
    public static void main(String[] args) {
        Filme meuFilme = new Filme();
        meuFilme.setNome("Férias Frustradas");
        meuFilme.setAno(2015);
        meuFilme.setDuracao(131);
        meuFilme.avalia(10);
        meuFilme.avalia(9);
        meuFilme.avalia(7);


        meuFilme.exibirFichaTecnica();
    }
}

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
solução!

Oi, Vinicius! Como vai?

Gostei de como você aplicou encapsulamento com campos privados e métodos privados como pegaMedia(). Atenção: getPlano() está alterando o estado ao calcular; isso pode surpreender. Prefira calcular sem side effects ou definir antes com setIncluidoNoPlano(boolean) e deixar getPlano() apenas retornar o valor.

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