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.