Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| theory:oop [2020/05/24 15:34] – создано labuser29 | theory:oop [2024/11/30 12:21] (текущий) – labuser30 | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ===== Объектно- ориентированное программирование ===== | + | ===== Объектно-ориентированное программирование ===== |
| Объектно-ориентированное программирование (сокращенно ООП) — это парадигма разработки программных систем, | Объектно-ориентированное программирование (сокращенно ООП) — это парадигма разработки программных систем, | ||
| Строка 25: | Строка 25: | ||
| То есть он не пишет какую-то функцию, | То есть он не пишет какую-то функцию, | ||
| + | |||
| + | === Классы и объекты === | ||
| + | Класс — это шаблон, | ||
| + | |||
| + | Таким образом, | ||
| + | |||
| + | Попробуем разобраться на примере | ||
| + | <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:// | ||
| + | </ | ||
| + | |||