1
resposta

[Dúvida] Porque nao foi usado o getSomaDasAvaliaçoes?

Deem uma olhada nesse meu codigo pois porque não e necessario por a soma das avaliações e se fosse essa forma como fiz de apenas ser um metodo acessor esta correto?

public class Filme {
    String nome;
    int anoDeLancamento;
    boolean incluidoNoPlano;
    // modificadores de acesso forma de encapsulamento
   private double somaDasAvaliacoes;
    private int totalDeAvaliacoes;
    int duracaoEmMinutos;

    // METODO DE ACESSO 
int getTotalDeAvaliacoes(){return totalDeAvaliacoes;}

double getSomaDasAvaliacoes(){return somaDasAvaliacoes;}

    // metodo void vazio sem retorno
    void exibeFichaTecnica(){
        System.out.println("Nome do filme: " + nome);
        System.out.println("O ano de lançamento do Filme:" + anoDeLancamento);
    }
    // metodo vazio pois apenas registramos algum atributo sem retorni=o de valor e damos o argumento
    void avalia(double nota /* nome do argumento double parametro tipo de atributo que esta na variavel */){
      somaDasAvaliacoes += nota;
      totalDeAvaliacoes++;

    }
    // metodo retorna media ja nao e vazio usamos o return para retorna a media
    double pegaMedia() {
       return somaDasAvaliacoes / totalDeAvaliacoes;
    }

}

import javax.swing.*;

public class Principal { public static void main(String[] args) { Filme meuFilme = new Filme();

    meuFilme.nome = "O poderoso chefão!";
    meuFilme.anoDeLancamento = 1980;
   // meuFilme.somaDasAvaliacoes = 8.4;
    meuFilme.duracaoEmMinutos = 160;
    // metodo exibiFichaTecnica
    meuFilme.exibeFichaTecnica();
    // metodo avalia
    meuFilme.avalia(8);
    meuFilme.avalia(5);
    meuFilme.avalia(100);
    meuFilme.avalia(10);
    // metodo pegaMedia
    System.out.println(meuFilme.getTotalDeAvaliacoes());
    System.out.println(meuFilme.getSomaDasAvaliacoes());
    System.out.println(meuFilme.pegaMedia());


}

}

Seria correto esse meu metodo se eu quisesse que ele seja apenas para acesso e nao atribuir nada a ele?

1 resposta

Olá, Levi! Tudo bem?

O jeito que você fez está correto sim. Dessa forma, temos os métodos de acesso tanto para o total de avaliações quanto para a soma das avaliações.

Para cada atributo, podemos criar um método de acesso (get) e um método de atribuição (set). Porém, precisamos lembrar das boas práticas de programação: por mais que possamos criar esses métodos, por quê fazer isso se não iremos utilizá-los, por exemplo?

O Paulo Silveira discute isso no artigo: https://www.alura.com.br/artigos/nao-aprender-oo-getters-e-setters. Recomendo que dê uma olhada!

Boa leitura e bons estudos!