Olá Carolina, tudo bem?
isso é algo que envolve o encapsulamento do JAVA. Posso fazer uma analogia para tentar explicar o funcionamento e o porquê disso?
Digamos que a sua bolsa está em cima da mesa e eu quero pegar alguma coisa dentro dela.
Eu poderia abrir a sua bolsa e retirar, por exemplo, um documento teu e utilizar. Correto?
Eu poderia também abrir a sua bolsa e colocar uma caneta dentro dela e fechar. Correto?
Mas isso seria algo que você iria gostar / se sentir segura se qualquer pessoa pudesse fazer isso e sem permissão?
Para isso que servem os setters e getter:
Getters:
"Olá Carol, eu poderia pegar o seu documento para confirmar a sua identificação?"
Setters:
"Olá Carol, eu poderia colocar essa caneta em seu estojo?"
Isso da uma camada de proteção, onde que em apenas, determinados momentos, exista uma permissão para fazer as alterações dos atributos que possa, realmente, alterar o valor do atributo.
"mas não consigo acessar o atributo, mesmo ele estando ali naquele espaço de memória junto com os atributos da classe normal que eu consigo acessar" :
Sua bolsa ou qualquer coisa que você possua está sendo observado e é possível mexer, mas precisa passar por uma permissão sua antes para realmente ter acesso ao que está querendo