Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
theory:oop [2020/05/24 15:38] – labuser29 | theory:oop [2024/11/30 12:21] (текущий) – labuser30 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ===== Объектно- ориентированное программирование ===== | + | ===== Объектно-ориентированное программирование ===== |
Объектно-ориентированное программирование (сокращенно ООП) — это парадигма разработки программных систем, | Объектно-ориентированное программирование (сокращенно ООП) — это парадигма разработки программных систем, | ||
Строка 30: | Строка 30: | ||
Таким образом, | Таким образом, | ||
+ | |||
+ | Попробуем разобраться на примере | ||
+ | <code python> | ||
+ | class Car: | ||
+ | def __init__(self, | ||
+ | self.color = color | ||
+ | self.fuel = fuel | ||
+ | self.consumption = consumption | ||
+ | self.odo = 0 | ||
+ | | ||
+ | def go(self, way): | ||
+ | self.odo += way | ||
+ | self.fuel -= self.consumption/ | ||
+ | | ||
+ | def get_odo(self): | ||
+ | return self.odo | ||
+ | | ||
+ | def get_fuel(self): | ||
+ | return self.fuel | ||
+ | </ | ||
+ | |||
+ | Мы объявили класс Car, описали его свойства и методы. | ||
+ | Свойства класса Car | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Методы класса Car | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Сразу возникает вопрос, | ||
+ | |||
+ | Также непонятно что такое self в параметрах всех функций и при обращении к свойствам. self — это ссылка объекта на самого себя, на текущий экземпляр класса. Ведь класс это всего лишь шаблон. И объектов, | ||
+ | |||
+ | Как видно мы описали абстрактно автомобиль. У любого автомобиля есть цвет, есть одометр, | ||
+ | |||
+ | <code python> | ||
+ | MyCar = Car(' | ||
+ | BrotherCar = Car(' | ||
+ | </ | ||
+ | |||
+ | Мы создали два объекта автомобиля '' | ||
+ | |||
+ | <code python> | ||
+ | print(MyCar.get_odo()) | ||
+ | print(MyCar.get_fuel()) | ||
+ | </ | ||
+ | |||
+ | Результат: | ||
+ | < | ||
+ | 0 | ||
+ | 50 | ||
+ | </ | ||
+ | |||
+ | Мой автомобиль еще ничего не проехал и топлива не потратил нисколько. Теперь проедем 20 километров и еще 10. | ||
+ | <code python> | ||
+ | MyCar.go(20) | ||
+ | MyCar.go(10) | ||
+ | </ | ||
+ | |||
+ | И повторим запросы пробега и уровня топлива | ||
+ | <code python> | ||
+ | print(MyCar.get_odo()) | ||
+ | print(MyCar.get_fuel()) | ||
+ | </ | ||
+ | |||
+ | Результат: | ||
+ | < | ||
+ | 30 | ||
+ | 47.0 | ||
+ | </ | ||
+ | |||
+ | Действительно '' | ||
+ | |||
+ | <code python> | ||
+ | BrotherCar.go(15) | ||
+ | print(BrotherCar.get_odo()) | ||
+ | print(BrotherCar.get_fuel()) | ||
+ | </ | ||
+ | |||
+ | Результат: | ||
+ | < | ||
+ | 15 | ||
+ | 57.75 | ||
+ | </ | ||
+ | |||
+ | Мы рассмотрели основы объектно- ориентированного программирования. Поняли что такое класс и объект. Узнали как создать объект и как вызывать его методы. Но на самом деле объектно- ориентированное программирование на этом только начинается. | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | [[https:// | ||
+ | </ | ||
+ |