ООП: атрибуты и методы
easy

ООП: атрибуты и методы

Два главных слова любого программиста в ООП. Знай их, люби их, говори правильно.

Продолжаем цикл статей об основах объектно-ориентированного программирования. Сегодня говорим о двух важных словах в ООП: атрибутах и методах. Это основа лексикона ООП, поэтому нужно знать.

Краткое содержание предыдущих частей:

  • ООП — это подход к программированию, основанный на понятии объектов и классов.
  • Объект можно представить как некую «коробку», в которой лежат какие-то данные и которая умеет совершать какие-то действия. Без объектов всё это лежит просто «в программе», а благодаря объектам оно разложено по понятным управляемым «коробкам».
  • Можно иметь типовые объекты, то есть имеющие похожую структуру и содержание — как производить товары на конвейере. Чертёж, по которому делают такие объекты, называется классом. Например, в программе может быть класс «пользователь», по которому создаются все будущие пользователи. Или класс «товар», по которому создаются все будущие товары.
  • Всё это нужно, чтобы упорядочить работу сложных больших программ.

Теперь нырнём в атрибуты и методы.

Атрибуты

Атрибут — это переменная, связанная с объектом или классом. Грубо говоря, если я хочу, чтобы у объекта «Пользователь» появилась фамилия, я должен сделать пользователю атрибут «Фамилия».

Для программистов: у класса есть атрибуты, свойства и поля. В зависимости от языка программирования эти три параметра могут означать одно и то же, а могут различаться. В этой статье мы разбираем академический подход к структуре класса вида «атрибут — значение».

Возьмём в качестве примера метафору — производство телефонов. У нас есть класс «Смартфон» — некий абстрактный смартфон, по лекалам которого изготавливают конкретные объекты-смартфоны.

У класса «Смартфон» могут быть такие атрибуты:

  • задняя камера
  • передняя камера
  • датчики объёма
  • батарейка
  • память

Это у нас будут атрибуты класса «Смартфон». Они могут принимать конкретные значения: камеры могут быть разных моделей, память может быть 64 или 256 гигабайт, а батарейка — 2500 мАч или 3500 мАч.

Когда мы задаём атрибут для класса, мы как будто настраиваем производственную линию: «Тут у нас будет станок по установке камер, там — по вклеиванию батареи». Когда мы задали класс с определёнными атрибутами, все объекты, произведённые из этого класса, будут появляться на свет с этими атрибутами.

Методы

Методы — это то, как можно взаимодействовать с атрибутами, узнавать и менять их значения. Рассмотрим их на том же прошлом примере про класс мобильника. Вот какие действия можно совершать:

  • позвонить;
  • сделать фото;
  • обработать HDR-фото, чтобы было красиво, когда снимаешь против солнца;
  • записать заметки;
  • установить программу;
  • посмотреть погоду;
  • полистать фотки;
  • поймать сигнал сотовой сети.

Получается, что методы отвечают за то, чтобы можно было взаимодействовать с классом. Чаще всего они отвечают за то, что можно сделать с атрибутами

Если посмотреть на список, можно заметить, что почти все методы доступны для выполнения извне — позвонить, сделать фото, посмотреть погоду и так далее. Это значит, что это открытые методы (public) — их может вызывать и работать с ними кто угодно: как пользователь, так и другие программы для своих нужд.

Но два других метода из списка — особенные: обработать HDR-фото и поймать сигнал сети. Их нельзя запустить напрямую, их вызывает операционная система, когда ей это нужно. Это значит, что это закрытые (private) методы, и они доступны только внутри самого класса. Если классу понадобится что-то обработать внутри себя, он ими воспользуется, а другие не смогут этого сделать.

Ещё есть защищённые (protected) методы. Их пока нет в наших примерах, но мы до них обязательно дойдём.

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy