Фрагменты из лекции, сделанной в виде презентации в pdf:
Классификация методов
Привязка к объекту/классу
- динамические методы - статические методы
Сигнатура и назначение метода полностью или частично определяются компилятором
- специальные методы - операции - методы, определяемые программистами
Возможность работы с константными объектами
- константные методы - неконстантные методы
Назначение
- Порождающие методы
- Инициализирующие методы
- Завершающие методы
- Методы доступа к свойствам
- Методы преобразования
- Методы клонирования
- Контрактные методы
Статические методы класса
Методы, которые применяются к отдельным объектам, называются динамическими
Методы, которые относятся к классу в целом, называются статическими
Динамические методы выполняются над конкретным объектом, а статические методы выполняются безотносительно какому-либо объекта
Статические методы чаще всего используются для порождения специфических экземпляров класса
Правила использования статических элементов класса
Статические методы могут обращаться непосредственно только к статическим свойствам и вызывать только другие статические методы класса
Обращение к нестатическим свойствам и методам экземпляра класса возможно, если передать экземпляр класса как параметр метода
Статические элементы доступны как через имя класса, так и через имя объекта: <имя класса>::<имя метода> <имя объекта>.<имя метода>
Специальные методы класса
Помимо обычных методов в классе имеется ряд специальных, сигнатура и назначение которых предопределены
Любой класс обязательно имеет специальные методы. Если они не определяются программистом, то компилятор генерирует их автоматически
Специальные методы класса
Конструктор с параметрами
Конструктор по умолчанию (без параметров)
Деструктор
Конструктор копии
Операция присваивания
Операции выделения и освобождения памяти
Операции приведения
Понятие конструктора
Конструктор – это метод, который автоматически вызывается при создании объекта, т.е. после выделения памяти под поля объекта
Конструктор чаще всего используется для задания первичных значений данным объекта и/или выделения динамической памяти, т.е. выполняет роль инициализирующего метода
Таким образом, создание и инициализация являются нераздельными понятиями — одно без другого невозможно
Понятие деструктора
Деструктор – это метод, который вызывается автоматически перед уничтожением объекта
Таким образом, деструктор является завершающим методом
Деструктор чаще всего используется для уничтожения динамически выделенной памяти
В языках, имеющих сборщики мусора, понятие деструктора отсутствует