Краткий обзор концепции ООП

Что такое объектно-ориентированное программирование?

  • Класс — это абстрактная схема (источник плана), используемая для создания экземпляров более конкретных конкретных объектов на основе этой схемы.
  • Используйте объекты для представления того, о чем вы программируете, переменные как свойства и функции как методы.
  • Создает объект, поэтому объект является физически доступной реализацией класса (для этого занято какое-то место в памяти в ОЗУ)

Конструктор

  • Каждый класс имеет по крайней мере один конструктор
  • this() — вызов другого конструктора внутри класса
  • super()— вызов конструктора в родительском классе

Статический

  • не относится к конкретному экземпляру
  • переменная/метод, совместно используемый всеми экземплярами (объектами) класса
  • если мы создадим много экземпляров этого класса, в памяти будет назначена только одна статическая переменная.

Не обманывайтесь именами!!!

Просто разные способы их вызова, но все они работают одинаково (немного отличаются, например, метод — это функция, прикрепленная к объекту).

  • переменная, атрибут, свойство, поле
  • функция, метод, рутина, подпрограмма
  • параметр (определение метода), аргумент (в скобках при вызове функции)

4 столпа ООП: инкапсуляция, абстракция, наследование, полиморфизм

Инкапсуляция

  • возможность скрывать переменные внутри класса от доступа извне
  • параметры класса будут определены как частные, мы используем методы получения и установки для доступа к переменным класса
  • сосредоточиться на защите данных от внешнего доступа и неправильного использования, а также на реализации
  • Преимущество: снижение сложности + повышение возможности повторного использования.

Абстракция

  • показывает только основные атрибуты и скрывает ненужную подробную информацию о реализации от пользователей
  • сосредоточиться на удалении ненужной информации и дизайна
  • Преимущество: снижение сложности + изолирование последствий изменений

Наследование

  • подкласс расширяет все свойства родительского класса в себя
  • и дочерний, и родительский классы имеют общий набор атрибутов и методов
  • подкласс наследует все,его суперкласс использует ключевое слово extends
  • Преимущество:устранение избыточного кода, что полезно для повторного использования.

Полиморфизм

  • одно действие может быть выполнено во многих формах, не требуя дополнительной информации
  • разрешить текущей части системы взаимодействовать с новым объектом, не заботясь о конкретных свойствах новых объектов
  • скрывает детали в общении и может пройти тест «есть ли»
  • когда класс наследует поведение другого класса, но имеет возможность не наследовать все и изменить некоторые унаследованные поведения. Например, чтобы написать метод, который делает что-то отличное от унаследованного метода
  • overloading : методы имеют одно и то же имя с разными параметрами (происходит во время компиляции)
  • overriding : два метода с одинаковыми именами и одинаковыми параметрами, подкласс также может предоставить новое определение методу, который он наследует (происходит во время выполнения)
  • Преимущество:код можно расширить,более динамичный

Инкапсуляция — контроль доступа

  • частное: доступно только внутри курса, но не за его пределами.
  • по умолчанию: доступ к пакету, член в другом классе, но в том же пакете
  • защищено: член суперкласса в другом пакете и в том же пакете
  • public: разные пакеты и разные пакеты

Абстракция — Абстракция и интерфейсы