1
resposta

[Projeto] Encapsulamento de Metodos e Atributos

Class Filme:

package alura.desafio.modelo;

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


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

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

    int getAno(){
        return anoDeLancamento;
    }

    public 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;
    }

    public void exibirFichaTecnica(){
        System.out.printf("Nome do alura.desafio.modelo.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());
    }

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

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

Class Principal:

import alura.desafio.modelo.Filme;

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

Oi, Vinicius! Como vai?

Agradeço por compartilhar.

Gostei de ver seu projeto aplicando o conceito de encapsulamento. Você fez um bom uso dos métodos getters e setters para proteger os atributos da classe e controlar o acesso às informações. O método getPlano() também mostra que você está entendendo bem a lógica condicional dentro de um contexto orientado a objetos.

Continue praticando e aprimorando sua organização de código.

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