Back to questions
Junior — Middle
83
Можете объяснить принцип инкапсуляции и как он реализуется в объектно-ориентированном программировании?
Companies where asked
Bytime
Answer from AI
sobes.tech AI
Инкапсуляция — это принцип объектно-ориентированного программирования, который предполагает скрытие внутренней реализации объекта и предоставление доступа к данным и методам только через определённый интерфейс.
Это позволяет:
- Защитить данные от некорректного использования
- Скрыть сложность реализации
- Обеспечить контроль над изменением состояния объекта
В языках ООП инкапсуляция реализуется с помощью модификаторов доступа (например, private, protected, public), которые определяют, какие поля и методы доступны извне.
Пример на Go (где инкапсуляция достигается через экспортируемые и неэкспортируемые идентификаторы):
type User struct {
name string // неэкспортируемое поле, доступно только внутри пакета
}
func (u *User) GetName() string {
return u.name // публичный метод для доступа к имени
}
func (u *User) SetName(newName string) {
if newName != "" {
u.name = newName
}
}
Здесь поле name скрыто от внешнего доступа, а взаимодействие с ним происходит через методы GetName и SetName, которые контролируют логику доступа и изменения.