O que são públicos, privados e protegidos na programação orientada a objetos?
O que são públicos, privados e protegidos na programação orientada a objetos?
Respostas:
Eles são modificadores de acesso e nos ajudam a implementar o Encapsulamento (ou ocultação de informações). Eles informam ao compilador quais outras classes devem ter acesso ao campo ou método que está sendo definido.
private
- Apenas a turma atual terá acesso ao campo ou método.
protected
- Apenas a classe e subclasses atuais (e às vezes também classes do mesmo pacote) desta classe terão acesso ao campo ou método.
public
- Qualquer classe pode se referir ao campo ou chamar o método.
Isso assume que essas palavras-chave são usadas como parte de uma declaração de campo ou método dentro de uma definição de classe.
Eles não são realmente conceitos, mas palavras-chave específicas que tendem a ocorrer (com semânticas ligeiramente diferentes) em linguagens populares como C ++ e Java.
Essencialmente, eles têm o objetivo de permitir que uma classe restrinja o acesso a membros (campos ou funções). A ideia é que quanto menos um tipo tem permissão para acessar em outro tipo, menos dependência pode ser criada. Isso permite que o objeto acessado seja alterado mais facilmente sem afetar os objetos que se referem a ele.
Em termos gerais, público significa que todos têm permissão para acessar, privado significa que apenas membros da mesma classe têm permissão para acessar e protegido significa que membros de subclasses também têm permissão. No entanto, cada idioma adiciona suas próprias coisas a isso. Por exemplo, C ++ permite que você herde não publicamente. Em Java, também há um nível de acesso padrão (pacote) e regras sobre classes internas, etc.
Todos os três são modificadores de acesso e palavras-chave que são usados em uma classe. Qualquer coisa declarada em público pode ser usada por qualquer objeto dentro da classe ou fora da classe, variáveis em privado só podem ser usadas pelos objetos dentro da classe e não podem ser alteradas por meio de acesso direto (já que pode ser alterado por meio de funções como função amiga) .Qualquer coisa definida na seção protegida pode ser usada pela classe e sua classe derivada.
Um item público é aquele que pode ser acessado por qualquer outra classe. Você só precisa saber qual é o objeto e pode usar um operador ponto para acessá-lo. Protegido significa que uma classe e suas subclasses têm acesso à variável, mas não a quaisquer outras classes; elas precisam usar um getter / setter para fazer qualquer coisa com a variável. Um privado significa que apenas essa classe tem acesso direto à variável, todo o resto precisa de um método / função para acessar ou alterar esses dados. Espero que isto ajude.
como acima, mas qualitativamente:
private - least access, best encapsulation
protected - some access, moderate encapsulation
public - full access, no encapsulation
quanto menos acesso você fornece, menos detalhes de implementação vazam de seus objetos. menos desse tipo de vazamento significa mais flexibilidade (também conhecido como "acoplamento mais fraco") em termos de alteração de como um objeto é implementado sem interromper os clientes do objeto. isso é algo realmente fundamental para entender.
Para resumir, na programação orientada a objetos, tudo é modelado em classes e objetos. As classes contêm propriedades e métodos. Palavras-chave públicas, privadas e protegidas são usadas para especificar o acesso a esses membros (propriedades e métodos) de uma classe de outras classes ou outros .dlls ou mesmo outros aplicativos.