Sobes.tech
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.