Это старая версия документа!


Объектно- ориентированное программирование

Объектно-ориентированное программирование (сокращенно ООП) — это парадигма разработки программных систем, в которой приложения состоят из объектов.

Объекты — это сущности, у которых есть свойства и поведение. Обычно объекты являются экземплярами какого-нибудь класса. Например, в игре может быть класс Car (машина), а его экземплярами будут Toyota Corolla или Ford Focus.

Свойства — это данные, которые связаны с конкретным объектом:

  • Объем двигателя
  • Габаритные размеры
  • Потребление топлива на 100км
  • Объем багажника
  • Цвет кузова
  • Максимальная скорость

Поведение объекта определяется с помощью методов — специальных блоков кода, которые можно вызывать из разных частей программы. Например, у того же объекта Car могут быть следующие методы:

  • Завести двигатель
  • Заглушить двигатель
  • Ехать
  • Сигналить
  • Включить фары

Используя эти свойства и методы, можно значительно ускорить разработку, сделать код более читаемым. К тому же самому программисту проще составлять код, если он думает с помощью объектов.

То есть он не пишет какую-то функцию, которая будет делать что-то для программы в целом. Вместо этого он мысленно разделяет приложение на отдельные компоненты и продумывает их свойства и поведение.

Классы и объекты

Класс — это шаблон, описание какой либо сущности, а объект — это экземпляр конкретной сущности, созданный по шаблону. Самое простое объяснение: класс — это чертеж трансформера, а экземпляры этого класса — конкретные трансформеры, например, Оптимус Прайм или Олег. И хотя они и собраны по одному чертежу, умеют одинаково ходить, трансформироваться и стрелять, они оба обладают собственным уникальным состоянием. Состояние — это ряд меняющихся свойств. Поэтому у двух разных объектов одного класса мы можем наблюдать разное имя, возраст, местоположение, уровень заряда, количество боеприпасов и т. д. Само наличие этих свойств и их типы описываются в классе.

Таким образом, класс — это описание того, какими свойствами и поведением будет обладать объект. А объект — это экземпляр с собственным состоянием этих свойств.

Попробуем разобраться на примере

  1. class Car:
  2. def __init__(self, color, fuel, consumption):
  3. self.color = color
  4. self.fuel = fuel
  5. self.consumption = consumption
  6. self.odo = 0
  7.  
  8. def go(self, way):
  9. self.odo += way
  10. self.fuel -= self.consumption/100 * way
  11.  
  12. def get_odo(self):
  13. return self.odo
  14.  
  15. def get_fuel(self):
  16. return self.fuel