Поняття об’єкта в мові програмування, його властивостей і методів. Структура програми
За навчальною програмою 2017 року
Урок 38
8
teach-inf.com.ua
Об’єкти, їх властивості та методи
Розділ 5 § 26
Мова Python є об’єктно-орієнтованою, тобто кожна величина є об’єктом певного класу. Окрім вбудованих класів (типів даних), програміст може описувати і використовувати в програмі власні класи.
Добре спроєктовані класи — це «будівельні блоки», з яких легше будувати складні програми.
8
© Вивчаємо інформатику teach-inf.com.ua
Об’єкти, їх властивості та методи
Розділ 5 § 26
Клас — це опис об’єктів певного типу, об’єкт — це екземпляр деякого класу. Опис класу містить атрибути (змінні), які відповідають властивостям об’єктів, і описи методів класу — дій, які можуть виконувати об’єкти цього класу.
Якщо опис класу Animal (Тварина) містить атрибут маса, то кожному екземпляру цього класу можна надати певне значення маси.
8
© Вивчаємо інформатику teach-inf.com.ua
Опис класів і створення об’єктів
Розділ 5 § 26
Згадаємо, як описують класи в програмі. Можна вважати, що клас — це своєрідна інструкція зі створення екземплярів. Об’єкт, створений на основі класу, називають екземпляром цього класу.
8
© Вивчаємо інформатику teach-inf.com.ua
Опис класів і створення об’єктів
Розділ 5 § 26
Опис класу зручно розташовувати на початку коду програми.
Синтаксис опису класу:
сlass <назва класу>(<базовий клас>):
<атрибут класу> = <значення>
def _ _init_ _(self, <інші параметри>):
self.<атрибут екземпляра> = значення
Атрибути класу мають однакове значення для всіх екземплярів класу, тоді як атрибути екземплярів — окреме значення для кожного екземпляра.
8
© Вивчаємо інформатику teach-inf.com.ua
Опис класів і створення об’єктів
Розділ 5 § 26
Метод __init__ називається конструктором класу. За наявності, він автоматично виконується під час створення кожного нового екземпляра класу для початкового налаштування властивостей об’єкта.
Перший із параметрів в описі конструктора (здебільшого його позначають self) зберігатиме посилання на створений об’єкт.
8
© Вивчаємо інформатику teach-inf.com.ua
Опис класів і створення об’єктів
Розділ 5 § 26
Синтаксис команди створення об’єкта:
[змінна = ] <назва класу>([<перелік значень параметрів>])
Доступ до створеного об’єкта можна отримати через змінну. Якщо такий доступ не потрібен, назву змінної не вказують.
8
© Вивчаємо інформатику teach-inf.com.ua
Опис класів і створення об’єктів
Розділ 5 § 26
Опишемо клас, що моделює транспортний засіб:
В останньому рядку коду викликається конструктор класу Transport і створюється екземпляр класу, відповідні атрибути якого мають значення вантажівка і дизельний. Посилання на цей об’єкт зберігається в змінну tr1.
8
© Вивчаємо інформатику teach-inf.com.ua
Методи класу
Розділ 5 § 26
Під час виклику методів можуть змінюватися властивості (значення атрибутів) об’єкта, а також виконуватися інші дії.
Синтаксис заголовка методу класу:
def <назва методу>(self[, параметри]):
Код методу виконується у відповідь на виклик методу для конкретного об’єкта.
8
© Вивчаємо інформатику teach-inf.com.ua
Методи класу
Розділ 5 § 26
Виклик методу для об’єкта має такий синтаксис:
<об’єкт>.<метод>([значення параметрів])
У разі виклику методу до нього передається посилання на той об’єкт, для якого викликається метод (параметр self).
8
© Вивчаємо інформатику teach-inf.com.ua
Методи класу
Розділ 5 § 26
Додамо до опису класу Transport() опис методу fuel() для виведення повідомлення про вид пального:
Буде надруковано:
вантажівка: дизельний двигун.
8
© Вивчаємо інформатику teach-inf.com.ua
Створення класів-нащадків�базового класу
Розділ 5 § 26
Об’єктно-орієнтоване програмування дозволяє прискорити розробку програми шляхом створення нових класів на основі створених раніше.
Успадкування — це можливість створення класу-нащадка на основі наявного (базового) класу.
8
© Вивчаємо інформатику teach-inf.com.ua
Створення класів-нащадків�базового класу
Розділ 5 § 26
Транспортний засіб має такі властивості: тип засобу, тип двигуна, вартість. Автобус, крім цих властивостей, має ще такі: кількість місць, призначення, маршрут. З точки зору успадкування клас Автобус є нащадком класу Транспортний засіб.
Клас-нащадок містить усі атрибути та методи базового класу, проте його можна розширити, додавши нові. У класі-нащадку можна не описувати атрибути та методи, успадковані від базового класу.
8
© Вивчаємо інформатику teach-inf.com.ua
Створення класів-нащадків�базового класу
Розділ 5 § 26
Створимо на основі базового класу Transport два класи-нащадки: Tuck і Bus, що мають власні методи.
8
© Вивчаємо інформатику teach-inf.com.ua
Використання панелі Структура
Розділ 5 § 26
У панелі Структура відображається структура опису класів і перелік змінних екземплярів класів.
Зверніть увагу на позначки заголовків:
c
класів
методів
атрибутів
екземплярів класів
m
f
v
8
© Вивчаємо інформатику teach-inf.com.ua
Використання панелі Структура
Розділ 5 § 26
Якщо набрати назву екземпляра класу, автодоповнення запропонує перелік методів, які можна викликати для цього об’єкта із зазначенням класу, в якому метод описано.
8
© Вивчаємо інформатику teach-inf.com.ua
Використання панелі Структура
Розділ 5 § 26
Отже, програміст може описати свій тип даних (клас), визначити в класі певні методи.
Разом із тим використання готових класів, описаних у файлах модулів (наприклад, у модулі tkinter або easygui) значно прискорює розробку програми.
8
© Вивчаємо інформатику teach-inf.com.ua
Питання для самоперевірки
Розділ 5 § 26
8
© Вивчаємо інформатику teach-inf.com.ua
Питання для самоперевірки
Розділ 5 § 26
8
© Вивчаємо інформатику teach-inf.com.ua
Домашнє завдання
Проаналізувати
§ 26, ст. 168-172
Розділ 5 § 26
8
© Вивчаємо інформатику teach-inf.com.ua
Працюємо за комп’ютером
Розділ 5 § 26
Сторінка
172
8
© Вивчаємо інформатику teach-inf.com.ua
Дякую за увагу!
За навчальною програмою 2017 року
Урок 38
8
teach-inf.com.ua