Расскажи о принципах ооп

Существует несколько принципов объектно-ориентированного программирования (ООП), которые помогают разработчикам создавать программы, которые легко поддерживать и масштабировать. Вот четыре основных принципа ООП:

  1. Инкапсуляция: Инкапсуляция является одним из основных принципов объектно-ориентированного программирования (ООП). 

Есть две трактовки:

Инкапсуляция — это объединение данных и методов, которые управляют этими данными в единый компонент.

Инкапсуляция – это механизм языка, позволяющий ограничить доступ одних компонентов программы к другим (т.е. изменять состояние объекта возможно только через его методы), но не всегда т.к. существует рефлексия.

Важно, что если мы сможем из любого места кода обратиться к публичному полю, то в случае его изменения полетит много всего, а если мы будем использовать приватное поле + гет + сет, то при изменении будут минимальные поломки.

Также есть нюанс с сокрытием: он заключается в том, что инкапсуляция обеспечивает сокрытие, но не является сокрытием.
 

  1. Наследование: Этот принцип заключается в том, что объекты могут наследовать свойства и методы от других объектов. Наследование позволяет создавать новые объекты на основе существующих и уменьшает дублирование кода. Также наследование облегчает создание иерархий объектов и упрощает изменение реализации методов.
     
  2. Полиморфизм: Этот принцип заключается в том, что объекты могут иметь различные реализации одного и того же метода. Полиморфизм позволяет программе адаптироваться к различным условиям и изменениям входных данных. Также полиморфизм упрощает разработку кода и повышает его гибкость.
     
  3. Абстракция: Этот принцип заключается в том, что детали реализации объекта должны быть скрыты от пользователя. Абстракция позволяет разрабатывать программы на более высоком уровне абстракции, что упрощает понимание и использование кода. Абстракция также позволяет скрыть детали реализации объекта, что уменьшает вероятность ошибок и упрощает поддержку программного обеспечения.

Oct. 19, 2023, Источник