Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não compreendo.

Eu fui fazendo diferente deles e colocar private me pareceu indiferente... Não entendo a sua importância.

Não deu erro nenhum ao colocar private kkkkk

package orientacaoObjeto;

public class metodo {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    livro HarryPotter = new livro();
    
    HarryPotter.Titulo = "O Prisioneiro de Azkaban!";
    HarryPotter.lancamento = 1999;
    HarryPotter.NomeDoAutor = "J.K Rowling";
    HarryPotter.preco = 50;
    HarryPotter.NumeroDePaginas = 500;
    HarryPotter.Editora = "Scholastic";
    
    HarryPotter.avalia(10);
    HarryPotter.avalia(14);
    HarryPotter.avalia(25);
    HarryPotter.exibeLivro();
    HarryPotter.pegaMedia();
    
    
}

}

package orientacaoObjeto;

public class livro {

String Titulo;
String NomeDoAutor;
String Editora;
int NumeroDePaginas;
double preco;
int lancamento;
private int SomaDasAvaliacao;
private int QuantidadeAvaliacao;

void exibeLivro() {
    System.out.println("O nome do Livro é: "+ Titulo);
    System.out.println("O nome do autor é: "+ NomeDoAutor);
    System.out.println("O nome da editora é: "+ Editora);
    System.out.println("A quantidade de paginas é de: "+ NumeroDePaginas);
    System.out.println("O Preço é: "+preco);
    System.out.println("O Ano de lançamento do livro: "+ lancamento);
    System.out.println("A Soma das avaliações são de: "+SomaDasAvaliacao);
    System.out.println("Quantidade Avaliações:"+QuantidadeAvaliacao);
}

void avalia(int nota) {
    
    SomaDasAvaliacao += nota;
    QuantidadeAvaliacao++;
    
    
}
void pegaMedia() {
double media = SomaDasAvaliacao / QuantidadeAvaliacao;
System.out.println(media);
}
}
2 respostas
solução!

Oi, Robert, tudo bem?

Quando declaramos um atributo como private em uma classe, estamos dizendo que esse atributo só pode ser acessado diretamente dentro da própria classe. Isso é uma prática comum na programação orientada a objetos chamada encapsulamento. Isso é feito para:

  • Proteger os Dados: ao tornar um atributo private, você protege os dados de serem alterados diretamente por outras partes do código. Isso evita que valores inesperados sejam atribuídos, o que pode causar comportamentos indesejados ou bugs. Por exemplo, no seu código, se alguém pudesse alterar diretamente SomaDasAvaliacao ou QuantidadeAvaliacao, poderia burlar o cálculo da média.
  • Controlar os Acessos: com os atributos private, você pode controlar como esses dados são acessados e modificados por meio de métodos públicos (getters e setters). Isso permite adicionar validações ou lógica adicional ao acessar ou modificar os dados.

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

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

Obrigado irmão!