1
resposta

[Dúvida] Forma de "mostrar" o total de avaliacoes e media

Eu queria saber se em uma situação real como no trabalho por exemplo, o jeito que eu imprimo como o valor da média e o valor do total de avaliações importaria, já que eu mostro eles dentro do método da ficha técnica do filme.

public class Filme {
    String nome;
    String sinopse;
    boolean incluidoNoPlano;
    private double mediaAvaliacoes;
    int anoDeLancamento;
    private int totalAvaliacoes = 0;
    int duracao;

    int getTotalAvaliacoes(){ //metodo para que se possa acessar o valor privado de algo
        return totalAvaliacoes;
    }

    double getMediaAvaliacoes(){
        return mediaAvaliacoes;
    }



    void informacoes(){

        System.out.println("Nome do filme: "+nome);
        System.out.println("Sinopse: "+sinopse);
        System.out.println("Ano de lançamento: "+anoDeLancamento);
        System.out.println("Duração: " + duracao + " minutos");
        System.out.printf("Nota: %.1f\n", mediaAvaliacoes);
        System.out.println("Total de avaliações: "+totalAvaliacoes);
    }

    void avalia(double nota){

        totalAvaliacoes++;
        mediaAvaliacoes = (mediaAvaliacoes * (totalAvaliacoes - 1) + nota) / totalAvaliacoes;
    }
}
public class Main {
    public static void main(String[] args) {

        Filme meuFilme = new Filme();

        meuFilme.nome = "Carros";
        meuFilme.anoDeLancamento = 2006;
        meuFilme.duracao = 117;
        meuFilme.sinopse = "Ao viajar para a Califórnia, o famoso carro de corridas Relâmpago McQueen se perde e vai parar em Radiator Springs, uma cidadezinha na Rota 66. Ele conhece novos amigos e aprende lições que mudam sua forma de encarar a vida.";


        meuFilme.avalia(9);
        meuFilme.avalia(2);
        meuFilme.avalia(10);

        meuFilme.informacoes();
        
        System.out.println("Total de avaliações usando get: "+meuFilme.getTotalAvaliacoes()); //outro jeito de pegar o total de avaliacoes quando o valor é privado
        System.out.println("Média usando get: "+meuFilme.getMediaAvaliacoes());

    }
}

1 resposta

Olá Nicolas, tudo bem com você?

A maneira como você exibe informações em um ambiente de trabalho pode depender muito do contexto e necessidade. No entanto, é uma prática comum e recomendada usar métodos como o getTotalAvaliacoes() e getMediaAvaliacoes() para acessar informações privadas em uma classe, como você fez. Isso é chamado de encapsulamento, um dos princípios fundamentais da programação orientada a objetos. Encapsulamento significa que os detalhes internos de como uma classe funciona são ocultados dos objetos que a utilizam. Isso é feito para aumentar a segurança e a flexibilidade do código.

Em um ambiente de trabalho real, você provavelmente faria algo semelhante a isso, pois permite que você obtenha essas informações de uma maneira controlada, sem precisar acessar diretamente os atributos privados da classe Filme.

A maneira como você exibe essas informações depende muito do que você precisa fazer e das necessidades da empresa que você trabalha. No entanto, usar métodos para obter essas informações, em vez de acessar os atributos diretamente, é uma prática recomendada.

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade. Em caso de dúvidas estou à disposição. Abraços e bons estudos!

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