Junior — Middle
Pode explicar o princípio de encapsulamento e como ele é implementado na programação orientada a objetos?
sobes.tech IA
Resposta da IA
A encapsulação é um princípio da programação orientada a objetos que implica ocultar a implementação interna de um objeto e fornecer acesso aos dados e métodos apenas através de uma interface definida.
Isto permite:
- Proteger os dados de uso incorreto
- Ocultar a complexidade da implementação
- Garantir o controlo sobre a alteração do estado do objeto
Em linguagens OOP, a encapsulação é implementada usando modificadores de acesso (por exemplo, private, protected, public), que determinam quais os campos e métodos acessíveis de fora.
Exemplo em Go (onde a encapsulação é alcançada através de identificadores exportados e não exportados):
type User struct {
name string // campo não exportado, acessível apenas dentro do pacote
}
func (u *User) GetName() string {
return u.name // método público para aceder ao nome
}
func (u *User) SetName(newName string) {
if newName != "" {
u.name = newName
}
}
Aqui, o campo name está oculto do acesso externo, e a interação com ele ocorre através dos métodos GetName e SetName, que controlam a lógica de acesso e alteração.