Похожие презентации:
Introduction to Computer Science. Занятие 22. Принципы ООП. Класс, его методы и атрибуты. Инициализация объекта. Инкапсуляция
1.
Introduction toComputer Science
ЗАНЯТИЕ 22
2.
Темы занятияПринципы ООП
Класс, его методы и атрибуты
Инициализация объекта
Инкапсуляция
Наследование
Полиморфизм
3.
ООПВ объектно-ориентированном программировании
программа представляет собой процесс
взаимодействия некоторых вполне самостоятельных
единиц, по аналогии с реальным миром называемых
объектами.
Создание программы = описание соответствующих
объектов + реализация взаимодействия между ними.
4.
Принципы ООП1. Абстракция
2. Инкапсуляция
3. Наследование
4. Полиморфизм
5.
АбстракцияАбстракция в ООП – это набор наиболее значимых (с
точки зрения программы) характеристик объекта.
Способ выделения подобных характеристик называется
абстрагированием.
Пример: у человека для целей программы выделили
две характеристики – Имя и Возраст.
6.
ИнкапсуляцияИнкапсуляция – это логическое объединение в одном
программном типе, называемом класс, как данных, так
и подпрограмм для их обработки.
Данные класса хранятся в полях(атрибутах) класса,
подпрограммы для работы с полями называются
методами класса.
7.
ИнкапсуляцияИнкапсуляция – это не только объединение данных и
кода, но и сокрытие данных для безопасного доступа к
ним.
Правило ООП: для защиты полей(атрибутов) работа с
ними должна происходить только через методы (а не
напрямую).
8.
Наследование классовСуть наследования: новый класс можно строить на
основе одного или нескольких существующих классов.
Терминология:
▪ Существующий класс: предок (parent), базовый класс,
суперкласс (super class).
▪ Новый класс: производный класс, класс-потомок (derived
class), подкласс (subclass).
Подкласс имеет все элементы своих предков и может
определять собственные атрибуты и методы.
9.
ПолиморфизмПолиморфизм - разное поведение одного и того же
метода(функции) при выполнении действий над
разными типами(в разных классах).
Пример: можно сложить два числа,
можно сложить две строки. Оператор один – типы
разные.
10.
Объявление класса – инструкцияclass
Синтаксис:
class имя_класса([список_предков]):
тело_класса
Пример – класс Point, который (пока) ничего не делает:
class Point:
pass
*) круглые скобки после имени класса не обязательны,
если список предков отсутствует.
11.
Создание объектаОбъявив некий класс, можно создать объекты этого
класса с помощью следующего синтаксиса:
p = Point() # один объект класса Point
s = Point() # ещё один объект класса Point
12.
Методы в объявлении классаВнутри класса методы объявляются как функции.
Обычно метод вызывается у объекта с использованием
точечной нотации: obj.method(). При таком вызове
объект obj будет первым аргументом метода. По
традиции соответствующий параметр метода называют
self (в Python он явно объявляется).
13.
Методы в объявлении классаclass Point:
def reset(self):
self.x = 0
self.y = 0
p = Point()
p.reset()
print(p.x, p.y)
# 0 0
14.
Эксперименты с методамиclass Point:
def reset(s):
s.x = 0
s.y = 0
def dump():
print('dump')
p = Point()
Point.reset(p) # аналог p.reset()
Point.dump()
# напечатает 'dump'
# TypeError: dump() takes 0 positional arguments but 1 was given
p.dump()
15.
Класс Point с методамиclass Point:
def move(self, x, y):
self.x = x
self.y = y
def reset(self):
self.move(0, 0)
def distance(self, p):
return ((self.x-p.x)**2+(self.y-p.y)**2)**0.5
16.
Использование класса Pointp1 = Point()
p1.move(3, 4)
p2 = Point()
p2.reset()
print(p1.distance(p2))
# 5.0
Программирование
Информатика