Java: Введение в ООП
Теория: Классы
Разберемся в устройстве классов из которых создают объекты на примере кода:
Первая строчка – это создание объекта из класса. За это отвечает оператор new. Затем идет "вызов" класса как функции с передачей туда аргументов. В реальности класс, конечно же, не вызывается. Вызывается конструктор класса, специальный метод, определенный внутри класса и имеющий такое же имя как и класс:
Конструктор нужен для инициализации объекта. В нашем примере нужно записать данные пользователя так, чтобы они остались внутри даже после завершения выполнения конструктора. Для этого потребуются свойства:
Свойства выглядят как переменные, определенные внутри класса («на уровне класса») с добавленными к ним модификаторами доступа, как у методов. Как они заполняются? Через конструктор во время создания объекта:
Обратите внимание на this — это указатель на текущий объект. Через него мы можем читать и записывать свойства, а также вызывать методы нашего объекта. Зачем это нужно? Без this код выглядит так name = value, то есть как установка значения в обычную переменную. Такой код приводил бы к путанице.
Свойства хранят данные объектов, причем у каждого объекта они свои. Если мы создадим двух пользователей, то между собой они никак не будут взаимодействовать, так как this указывает на конкретный объект:
Свойства можно не только читать, но и менять:
Конструктор по умолчанию
Иногда у объектов начальная инициализация необязательна, либо ее вообще нет. В таком случае определять конструктор не нужно, так как Java определяет для каждого класса конструктор по умолчанию. Это обычный конструктор, но без параметров:
Перегрузка конструктора
Перегрузка методов распространяется и на конструктор. В зависимости от ситуации можно добавлять любые конструкторы, которые удобно.
Про перегрузку конструктора полезно знать из-за частого использования в существующих классах, с которыми вам предстоит работать. Поэтому мы ее затрагиваем уже сейчас.


