Краткий обзор концепции ООП
Что такое объектно-ориентированное программирование?
- Класс — это абстрактная схема (источник плана), используемая для создания экземпляров более конкретных конкретных объектов на основе этой схемы.
- Используйте объекты для представления того, о чем вы программируете, переменные как свойства и функции как методы.
- Создает объект, поэтому объект является физически доступной реализацией класса (для этого занято какое-то место в памяти в ОЗУ)
Конструктор
- Каждый класс имеет по крайней мере один конструктор
this()
— вызов другого конструктора внутри классаsuper()
— вызов конструктора в родительском классе
Статический
- не относится к конкретному экземпляру
- переменная/метод, совместно используемый всеми экземплярами (объектами) класса
- если мы создадим много экземпляров этого класса, в памяти будет назначена только одна статическая переменная.
Не обманывайтесь именами!!!
Просто разные способы их вызова, но все они работают одинаково (немного отличаются, например, метод — это функция, прикрепленная к объекту).
- переменная, атрибут, свойство, поле
- функция, метод, рутина, подпрограмма
- параметр (определение метода), аргумент (в скобках при вызове функции)
4 столпа ООП: инкапсуляция, абстракция, наследование, полиморфизм
Инкапсуляция
- возможность скрывать переменные внутри класса от доступа извне
- параметры класса будут определены как частные, мы используем методы получения и установки для доступа к переменным класса
- сосредоточиться на защите данных от внешнего доступа и неправильного использования, а также на реализации
- Преимущество: снижение сложности + повышение возможности повторного использования.
Абстракция
- показывает только основные атрибуты и скрывает ненужную подробную информацию о реализации от пользователей
- сосредоточиться на удалении ненужной информации и дизайна
- Преимущество: снижение сложности + изолирование последствий изменений
Наследование
- подкласс расширяет все свойства родительского класса в себя
- и дочерний, и родительский классы имеют общий набор атрибутов и методов
- подкласс наследует все,его суперкласс использует ключевое слово
extends
- Преимущество:устранение избыточного кода, что полезно для повторного использования.
Полиморфизм
- одно действие может быть выполнено во многих формах, не требуя дополнительной информации
- разрешить текущей части системы взаимодействовать с новым объектом, не заботясь о конкретных свойствах новых объектов
- скрывает детали в общении и может пройти тест «есть ли»
- когда класс наследует поведение другого класса, но имеет возможность не наследовать все и изменить некоторые унаследованные поведения. Например, чтобы написать метод, который делает что-то отличное от унаследованного метода
overloading
: методы имеют одно и то же имя с разными параметрами (происходит во время компиляции)overriding
: два метода с одинаковыми именами и одинаковыми параметрами, подкласс также может предоставить новое определение методу, который он наследует (происходит во время выполнения)- Преимущество:код можно расширить,более динамичный
Инкапсуляция — контроль доступа
- частное: доступно только внутри курса, но не за его пределами.
- по умолчанию: доступ к пакету, член в другом классе, но в том же пакете
- защищено: член суперкласса в другом пакете и в том же пакете
- public: разные пакеты и разные пакеты
Абстракция — Абстракция и интерфейсы