Sobes.tech
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, которые контролируют логику доступа и изменения.