Sobes.tech
Junior — Middle

Explique o conceito de encapsulamento de dados 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 esconder o estado interno de um objeto e fornecer acesso a ele apenas através de métodos (interface).

Em Go, a encapsulação é alcançada através da visibilidade dos identificadores:

  • Nomes que começam com uma letra maiúscula são exportados e acessíveis de outros pacotes (públicos).
  • Nomes que começam com uma letra minúscula são acessíveis apenas dentro do pacote (privados).

Assim, para encapsular dados, deve-se declarar os campos da estrutura com uma letra minúscula e fornecer métodos para acessar e modificar esses campos.

Exemplo:

package user

type User struct {
    name string // campo privado
}

func NewUser(name string) *User {
    return &User{name: name}
}

func (u *User) GetName() string {
    return u.name
}

func (u *User) SetName(name string) {
    u.name = name
}

Essa abordagem permite controlar o acesso aos dados, garantir sua integridade e alterar a implementação interna sem afetar o código externo.