1 of 22

Поняття об’єкта в мові програмування, його властивостей і методів. Структура програми

За навчальною програмою 2017 року

Урок 38

8

teach-inf.com.ua

2 of 22

Об’єкти, їх властивості та методи

Розділ 5 § 26

Мова Python є об’єктно-орієнтованою, тобто кожна величина є об’єктом певного класу. Окрім вбудованих класів (типів даних), програміст може описувати і використовувати в програмі власні класи.

Добре спроєктовані класи — це «будівельні блоки», з яких легше будувати складні програми.

8

© Вивчаємо інформатику teach-inf.com.ua

3 of 22

Об’єкти, їх властивості та методи

Розділ 5 § 26

Клас — це опис об’єктів певного типу, об’єкт — це екземпляр деякого класу. Опис класу містить атрибути (змінні), які відповідають властивостям об’єктів, і описи методів класу  — дій, які можуть виконувати об’єкти цього класу.

Якщо опис класу Animal (Тварина) містить атрибут маса, то кожному екземпляру цього класу можна надати певне значення маси.

8

© Вивчаємо інформатику teach-inf.com.ua

4 of 22

Опис класів і створення об’єктів

Розділ 5 § 26

Згадаємо, як описують класи в програмі. Можна вважати, що клас — це своєрідна інструкція зі створення екземплярів. Об’єкт, створений на основі класу, називають екземпляром цього класу.

8

© Вивчаємо інформатику teach-inf.com.ua

5 of 22

Опис класів і створення об’єктів

Розділ 5 § 26

Опис класу зручно розташовувати на початку коду програми.

Синтаксис опису класу:

сlass <назва класу>(<базовий клас>):

<атрибут класу> = <значення>

def _ _init_ _(self, <інші параметри>):

self.<атрибут екземпляра> = значення

Атрибути класу мають однакове значення для всіх екземплярів класу, тоді як атрибути екземплярів — окреме значення для кожного екземпляра.

8

© Вивчаємо інформатику teach-inf.com.ua

6 of 22

Опис класів і створення об’єктів

Розділ 5 § 26

Метод __init__ називається конструктором класу. За наявності, він автоматично виконується під час створення кожного нового екземпляра класу для початкового налаштування властивостей об’єкта.

Перший із параметрів в описі конструктора (здебільшого його позначають self) зберігатиме посилання на створений об’єкт.

8

© Вивчаємо інформатику teach-inf.com.ua

7 of 22

Опис класів і створення об’єктів

Розділ 5 § 26

Синтаксис команди створення об’єкта:

[змінна = ] <назва класу>([<перелік значень параметрів>])

Доступ до створеного об’єкта можна отримати через змінну. Якщо такий доступ не потрібен, назву змінної не вказують.

8

© Вивчаємо інформатику teach-inf.com.ua

8 of 22

Опис класів і створення об’єктів

Розділ 5 § 26

Опишемо клас, що моделює транспортний засіб:

В останньому рядку коду викликається конструктор класу Transport і створюється екземпляр класу, відповідні атрибути якого мають значення вантажівка і дизельний. Посилання на цей об’єкт зберігається в змінну tr1.

8

© Вивчаємо інформатику teach-inf.com.ua

9 of 22

Методи класу

Розділ 5 § 26

Під час виклику методів можуть змінюватися властивості (значення атрибутів) об’єкта, а також виконуватися інші дії.

Синтаксис заголовка методу класу:

def <назва методу>(self[, параметри]):

Код методу виконується у відповідь на виклик методу для конкретного об’єкта.

8

© Вивчаємо інформатику teach-inf.com.ua

10 of 22

Методи класу

Розділ 5 § 26

Виклик методу для об’єкта має такий синтаксис:

<об’єкт>.<метод>([значення параметрів])

У разі виклику методу до нього передається посилання на той об’єкт, для якого викликається метод (параметр self).

8

© Вивчаємо інформатику teach-inf.com.ua

11 of 22

Методи класу

Розділ 5 § 26

Додамо до опису класу Transport() опис методу fuel() для виведення повідомлення про вид пального:

Буде надруковано:

вантажівка: дизельний двигун.

8

© Вивчаємо інформатику teach-inf.com.ua

12 of 22

Створення класів-нащадків�базового класу

Розділ 5 § 26

Об’єктно-орієнтоване програмування дозволяє прискорити розробку програми шляхом створення нових класів на основі створених раніше.

Успадкування — це можливість створення класу-нащадка на основі наявного (базового) класу.

8

© Вивчаємо інформатику teach-inf.com.ua

13 of 22

Створення класів-нащадків�базового класу

Розділ 5 § 26

Транспортний засіб має такі властивості: тип засобу, тип двигуна, вартість. Автобус, крім цих властивостей, має ще такі: кількість місць, призначення, маршрут. З точки зору успадкування клас Автобус є нащадком класу Транспортний засіб.

Клас-нащадок містить усі атрибути та методи базового класу, проте його можна розширити, додавши нові. У класі-нащадку можна не описувати атрибути та методи, успадковані від базового класу.

8

© Вивчаємо інформатику teach-inf.com.ua

14 of 22

Створення класів-нащадків�базового класу

Розділ 5 § 26

Створимо на основі базового класу Transport два класи-нащадки: Tuck і Bus, що мають власні методи.

8

© Вивчаємо інформатику teach-inf.com.ua

15 of 22

Використання панелі Структура

Розділ 5 § 26

У панелі Структура відображається структура опису класів і перелік змінних екземплярів класів.

Зверніть увагу на позначки заголовків:

c

класів

методів

атрибутів

екземплярів класів

m

f

v

8

© Вивчаємо інформатику teach-inf.com.ua

16 of 22

Використання панелі Структура

Розділ 5 § 26

Якщо набрати назву екземпляра класу, автодоповнення запропонує перелік методів, які можна викликати для цього об’єкта із зазначенням класу, в якому метод описано.

8

© Вивчаємо інформатику teach-inf.com.ua

17 of 22

Використання панелі Структура

Розділ 5 § 26

Отже, програміст може описати свій тип даних (клас), визначити в класі певні методи.

Разом із тим використання готових класів, описаних у файлах модулів (наприклад, у модулі tkinter або easygui) значно прискорює розробку програми.

8

© Вивчаємо інформатику teach-inf.com.ua

18 of 22

Питання для самоперевірки

  1. Поясніть поняття класу, об’єкта, атрибута класу, методу класу.
  1. Поясніть сутність успадкування.
  1. Створіть клас Element — модель хімічного елемента. У конструкторі класу __init__ опишіть атрибути name, symbol і number. Створіть екземпляр elem класу Element зі значеннями атрибутів 'Aurum', 'Au', 79. Виведіть значення атрибутів об’єкта elem.

Розділ 5 § 26

8

© Вивчаємо інформатику teach-inf.com.ua

19 of 22

Питання для самоперевірки

  1. Створіть модель країни — клас Сountry з атрибутами name (назва країни), currency (національна валюта). Опишіть метод класу print_currency, який виводить значення атрибутів об’єкта.
  1. Створіть екземпляр my_country класу Сountry зі значеннями атрибутів 'Україна’, 'гривня'. Викличте для об’єкта my_country метод print_currency.
  1. Створіть екземпляри класу Сountry, що описують Польщу, Німеччину, Мексику, Австралію, Танзанію.

Розділ 5 § 26

8

© Вивчаємо інформатику teach-inf.com.ua

20 of 22

Домашнє завдання

Проаналізувати

§ 26, ст. 168-172

Розділ 5 § 26

8

© Вивчаємо інформатику teach-inf.com.ua

21 of 22

Працюємо за комп’ютером

Розділ 5 § 26

Сторінка

172

8

© Вивчаємо інформатику teach-inf.com.ua

22 of 22

Дякую за увагу!

За навчальною програмою 2017 року

Урок 38

8

teach-inf.com.ua