ООП 1 Flashcards
принципы ООП
- Абстракция
- Инкапсуляция
- Наследование
- Полиморфизм
Абстракция
Выделение значимой информации и исключение из рассмотрения незначимой. Правильное разделение программы на объекты.
Инкапсуляция
Свойство системы, позволяющее объединить данные и методы, работающие с ними, в отдельном классе.
Механизм сокрытия внутренней реализации объекта и предоставление доступа к данным только через публичные методы.
Наследование
Свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью.
Полиморфизм
Свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Почему не попускается множественное наследование классов
- Проблема ромбовидного наследования: A и B наследуются от C. D наследуется от A и B. Чьи методы должен использовать D?
- Неоднозначности при вызове методов c одинаковой сигнатурой.
класс
Класс – это шаблон, описывающий общие свойства группы объектов. Этими свойствами могут быть как характеристики объектов так и их поведения
конструктор
Конструктор — это специальный метод, который вызывается при создании нового объекта.
Конструктор инициализирует объект непосредственно во время создания.
виды конструкторов
- Конструктор по умолчанию. Не принимает никаких параметров.
- Конструктор копирования. Принимает в качестве параметра объект класса.
- Конструктор с параметрами. Принимает на вход параметры (обычно необходимые для инициализации полей класса).
модификации уровня доступа
- private
- доступ только методам класса - default (package private)
- доступ только методам класса и пакеджа - protected
- доступ методам класса, пакеджа и классов наследников - public
- доступ без ограничений
класс с единственным private конструктором
Невозможно создать объект класса у которого единственный private конструктор за пределами класса. Поэтому нельзя унаследоваться от такого класса. При попытке создать объект класса или унаследоваться будет выдаваться ошибка
this
используется для обращения к текущему классу
super
используется для обращения к родительскому классу
сигнатура метода
имя метода плюс параметры (причем порядок параметров имеет значение)
что не входит в сигнатуру метода
возвращаемое значение, бросаемые им исключения, а также модификаторы