Consegui entender o que significa esses 2 modificadores de acesso, mas fiquei com uma dúvida: em que situações seria realmente interessante usar o protected, ao invés de usar private e acessar os campos por meio de getter's?
Consegui entender o que significa esses 2 modificadores de acesso, mas fiquei com uma dúvida: em que situações seria realmente interessante usar o protected, ao invés de usar private e acessar os campos por meio de getter's?
Quando você trabalha com heranças, por exemplo.
Imagine que você tem uma classe Pessoa:
class Pessoa{
protected String nome;
}
e uma classe Aluno:
class Aluno extends Pessoa {
}
se você precisar da variável nome dentro da classe aluno, você não precisa utilizar getNome(), o que seria estranho, e sim acessar por meio do this.nome.
Olá Sabrina, tudo bem ?
Referente a sua dúvida depende muito da regra de negócio ou do problema em questão, mas o que pode-se afirmar referente ao uso do Protected ao invés dos Getter's e Setter's seria a maneira mais fácil para que as classes filhas acessem e peguem as informações da Classe MÃE/ SUPER CLASSE reduzindo o tamanho do código. Agora se você procura apontar algo, modificar, obter maior foco no encapsulamento e principalmente com foco no encapsulamento o ideal seria os Getter's e Setter's onde o seu objetivo de fato é não permitir que variáveis sejam modificadas diretamente.
Espero ter ajudado,
Ótimos Estudos !