Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
22 слайда
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
217.44 kB
Просмотров:
133
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд
Содержание слайда: Язык программирования
Лекция № 8. Объектно – ориентированное программирование
(ООП)
Евгений Сергеевич Чухланцев
№2 слайд
Содержание слайда: Объектно-ориентированное программирование
ООП
-парадигма программирования, основными концепциями которой являются понятия «класс» и «объект».
№3 слайд
Содержание слайда: Класс – пользовательский тип, описывающий устройство объекта.
Объект – «душа», сущность класса.
№4 слайд
Содержание слайда: Принципы ООП (Алан Кэй):
все данные представляются объектами
программа - набор взаимодействующих объектов, посылающих друг другу сообщения
каждый объект имеет собственную часть памяти
каждый объект имеет свой тип (класс)
объекты одного типа могут принимать одни и те же сообщения
№5 слайд
Содержание слайда: Механизмы ООП (принципы):
Инкапсуляция - можно скрыть ненужные внутренние подробности работы объекта от окружающего мира (алгоритмы работы с данными хранятся вместе с данными).
№6 слайд
Содержание слайда: Классы в Python
class <name>
def <method> (self [, <arguments>]):
<Function codes>
№7 слайд
Содержание слайда: Пример класса
class Car(object):
color = ‘red’ # свойство класса (атрибут)
def out(self): # метод класса
print (self.color + ‘!’)
obj = Car()
print (obj.color) # red
obj.out() # red!
№8 слайд
Содержание слайда: Объекты
Все базовые типы в Python (число, строка, функция, модуль) - объекты.
№9 слайд
Содержание слайда: Private & Public свойства
class Car(object):
color = “red”
__color = “green”
obj = Car()
obj.color = “yellow” # True
obj.__color = “white” # Error
№10 слайд
Содержание слайда: Getters & Setters
class Car(object):
__speed = 0
def get_speed(self):
return self.__speed
def set_speed(self, speed):
assert isinstance(speed, int)
self.__speed = min(speed, 200)
c = Car()
c.set_speed(60)
print (c.get_speed()) # 60
№11 слайд
Содержание слайда: Конструктор
- метод, при создании объекта автоматически создающий ему атрибуты ( __init__ ).
№12 слайд
Содержание слайда: Конструктор
Параметры без значений по умолчанию указываются первыми, а параметры со значениями по умолчанию — после.
№13 слайд
Содержание слайда: Строковое представление
class Car(object):
__speed = 200
...
def __str__(self):
return ‘Car with speed’ + str(self.__speed)
c = Car()
print (c) # Car speed 200
№14 слайд
Содержание слайда: Наследование
- механизм ООП, позволяющий описать новый класс на основе родительского, т.ч. свойства и функциональность родительского класса заимствуются новым классом.
№15 слайд
Содержание слайда: Наследование
class DerName (BaseClassName):
<statement-1>
. . .
<statement-N>
№16 слайд
Содержание слайда: Наследование
Функция issubclass(X, Y) :
является ли класс X подклассом класса Y
№17 слайд
Содержание слайда: Наследование
class A(object): pass
class B(A): pass
print B.__mro__
#(<class '__main__.B'>,
<class '__main__.A'>,
<type 'object'>)
№18 слайд
Содержание слайда: Полиморфизм
- взаимозаменяемость объектов с одинаковым интерфейсом
№19 слайд
Содержание слайда: Полиморфизм
- возможность использования одного и того же имени операции (метода) к объектам разных классов.
№20 слайд
Содержание слайда: Duck Typing
«If it looks like a duck and quacks like a duck, it must be a duck.»
№21 слайд
Содержание слайда: Дополнительно
class Car(object): pass
c = Car()
print (c) # <__main__.Car object at 0x041D6BD0>
print (Car) # <class '__main__.Car'>
print (type(c)) # <class '__main__.Car'>
print (c.__class__) # <class '__main__.Car'>
print (type(Car)) # <type 'type'>
print (type(type(c))) # <type 'type'>
print (Car.__class__) # <type 'type'>
print (Car.__bases__) # (<type 'object'>,)
print (type(type(Car))) # <type 'type'>
print (type(Car).__bases__) # (<type 'object'>,)
№22 слайд
Содержание слайда: Материалы по теме ООП
http://younglinux.info/oopython/oop.php
http://www.ibm.com/developerworks/ru/library/l-python_part_6/index.html
http://en.wikibooks.org/wiki/Python_Programming/Object-oriented_programming
http://www.cafepy.com/article/python_types_and_objectshttp://www.cafepy.com/article/python_attributes_and_methods/
http://docs.python.org/tutorial/classes.html