Напоминание: переменные и функции
Переменные предназначены для хранения данных. Функции предназначены для выполнения действий.
У каждого из этих инструментов есть фундаментальное ограничение:
- Переменные могут хранить данные, но не могут ничего с ними делать.
- Функции могут обрабатывать данные, но не могут их хранить.
Переменные и функции взаимно дополняют друг друга — каждый делает то, чего не умеет другой.
Объекты объединяют данные и действия
Ключевая фишка объектов в ООП — они умеют и хранить данные, и выполнять действия. Объекты объединяют в себе способности переменных и функций.
Как это происходит? Очень просто: внутри класса можно объявить как переменные, так и функции.
Класс Cat определяет набор переменных (name, color, age) и функцию (meow()). Объект my_cat пользуется этими переменными и функцией.
Терминология: свойства и методы
В контексте ООП используются специальные термины:
- Свойство (поле) — это переменная, объявленная в теле класса.
- Метод — это функция, объявленная в теле класса.
То есть, у класса Cat есть свойства name, color, age и метод meow().
Пример: класс Brick
Рассмотрим класс Brick (кирпич) со свойствами и методом:
В этом примере:
- Свойства:
color,mass,material - Метод:
fall_on_head() - Создано два объекта (
b1иb2) с разными характеристиками - Метод вызван только у первого кирпича
Важное замечание
Свойства и методы объявляются в теле класса, а используются объектами этого класса.
Попытка обратиться к свойству или методу через сам класс (а не через объект) приведёт к ошибке компиляции:
Класс — это только чертёж. Чтобы что-то сделать, нужно создать объект (экземпляр) по этому чертежу.