Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

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