1 of 24

Поняття об’єкта, класу як об’єктного типу даних

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

Урок 52

10

(11)

teach-inf.com.ua

2 of 24

Класи та об’єкти у програмуванні

Розділ 4 § 4.1

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

Програмування мовою Python є об’єктно-орієнтованим, тобто програма описує взаємодію об’єктів.

Так, число 7 — це об’єкт, який належить класу (типу) integer.

10�(11)

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

3 of 24

Класи та об’єкти у програмуванні

Розділ 4 § 4.1

Клас задає поведінку об’єктів, створених на його основі. Ми можемо створити власний клас (тип) об’єктів.

Уявімо, що потрібно написати програму, в якій моделюється життя акваріумних рибок.

10�(11)

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

4 of 24

Класи та об’єкти у програмуванні

Розділ 4 § 4.1

Усі рибки мають такі властивості, як:

колір

довжина

маса

координати положення рибок в акваріумі в певний момент часу

Кожна рибка може:

рухатися

їсти

гратися з іншими рибками

нападати на інших рибок

При цьому рибка:

росте

змінює положення в акваріумі

тобто змінюються її властивості.

10�(11)

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

5 of 24

Класи та об’єкти у програмуванні

Розділ 4 § 4.1

Ми можемо описати клас Рибка, перелічити ті властивості акваріумних рибок, які важливі для нашої програми, і дії, які рибки можуть виконувати.

Це допоможе створювати і графічно відображати нових рибок у нашій програмі, програмувати виконання рибками певних дій та зміну значень їхніх властивостей.

10�(11)

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

6 of 24

Поняття класу

Розділ 4 § 4.1

Навколишній світ можна розділити на різні класи речей, такі як:

«собаки»

або «будинки»

або «квіти»

Об’єкти мають різні властивості. Так:

пес Рекс

Є об’єктом класу Собака

Його властивостями є порода, зріст, маса, кличка.

Об’єкт — це екземпляр деякого класу.

Клас — це опис об’єктів певного типу.

10�(11)

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

7 of 24

Поняття класу

Розділ 4 § 4.1

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

Значення властивостей у кожного об’єкта свої.

10�(11)

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

8 of 24

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

Розділ 4 § 4.1

Створимо клас Dog, що моделює собаку. Що ми знаємо про собак? У них є:

кличка

вік

маса

порода тощо

Включимо в клас Dog спільні для собак характеристики:

Ці характеристики стануть атрибутами класу Dog.

10�(11)

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

9 of 24

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

Розділ 4 § 4.1

Опис класу повідомляє середовищу програмування Python, як створити об’єкт, який представляє модель собаки. Після того як клас буде описано, ми використаємо його для створення об’єктів (екземплярів класу), кожен із яких представлятиме одного конкретного собаку.

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

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

сlass Ім’я_класу():

def ім’я_методу(self, <перелік параметрів>):

self.змінна = значення

10�(11)

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

10 of 24

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

Розділ 4 § 4.1

Опишемо клас Dog().

сlass Dog():

def __init__ (self, name, breed, age):

self.name = name

self.breed = breed

self.age = age

10�(11)

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

11 of 24

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

Розділ 4 § 4.1

Проаналізуємо структуру опису класу.

  • Визначається клас з іменем Dog.

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

_ _init_ _

  • Ім’я методу починається і закінчується двома символами підкреслення.

визначається з 4 параметрами в дужках: self, name, breed і age.

Метод

_ _init_ _

перелік атрибутів (властивостей) класу.

name, breed, age

  • У списку всіх параметрів першим має бути параметр self, він потрібен для зв’язку з конкретним об’єктом.

10�(11)

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

12 of 24

Створення екземпляра класу

Розділ 4 § 4.1

Можна вважати, що клас — це своєрідна інструкція зі створення екземплярів. Відповідно клас Dog — інструкція зі створення екземплярів, які представляють конкретних собак.

Створення об’єкта на основі класу називають створенням екземпляра класу.

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

10�(11)

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

13 of 24

Створення екземпляра класу

Розділ 4 § 4.1

Об’єкт створюють за інструкцією:

змінна = Ім’я_класу(<перелік значень атрибутів>)

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

Ім’я класу принято починати із символу верхнього регістра (наприклад, Dog), а ім’я окремого екземпляра, створеного на основі класу, записують у нижньому регістрі.

10�(11)

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

14 of 24

Створення екземпляра класу

м

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

my_dog = Dog('Рекс', 'пудель', 5)

Створюється екземпляр собаки з кличкою Рекс породи пудель віком 5 років.

10�(11)

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

15 of 24

Створення екземпляра класу

Розділ 4 § 4.1

Проаналізуємо структуру опису класу.

  • У процесі оброблення цього рядка Python викликає метод�_ _init_ _ класу Dog зі значеннями 'Рекс' , 'пудель' , 5.

(посилання на екземпляр) передається авто-

матично.

Значення self

створює екземпляр, який представляє конкретного собаку, і присвоює атрибутам name, breed, age цього екземпляра передані значення.

Цей екземпляр зберігається у змінній my_dog.

Метод

_ _init_ _

  • При створенні об’єкта класу Dog необхідно надавати значення атрибутів name, breed, age.

10�(11)

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

16 of 24

Створення екземпляра класу

Розділ 4 § 4.1

def _ _init_ _(self, name, breed, age):

Під час виклику методу дотримуйтесь відповідності між списком значень і списком атрибутів у заголовку методу: кількість; порядок розташування; збіг типів.

my_dog = Dog('Рекс', 'пудель', 5)

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

10�(11)

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

17 of 24

Властивості об’єктів

Розділ 4 § 4.1

Ми створили клас Dog і екземпляр цього класу, який представляє конкретного собаку:

my_dog = Dog('Рекс', 'пудель', 5)

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

10�(11)

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

18 of 24

Доступ до атрибутів об’єкта

Розділ 4 § 4.1

Для звернення до атрибутів екземпляра використовується запис через крапку:

об’єкт.атрибут

Наприклад, звернення до значення атрибута name екземпляра my_dog:

my_dog.name

10�(11)

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

19 of 24

Доступ до атрибутів об’єкта

Розділ 4 § 4.1

Надрукуємо значення атрибута name екземпляра my_dog:

print('Кличка', my_dog.name)

У цьому випадку Python звертається до екземпляра my_dog і шукає атрибут name. Це той атрибут, який позначався self.name у класі Dog. Конструкція my_dog.name отримає значення, що було передане атрибуту self.name при створенні об’єкта my_dog.

10�(11)

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

20 of 24

Доступ до атрибутів об’єкта

Розділ 4 § 4.1

Виведемо повідомлення про вік собаки:

print('Вік – ', my_dog.age, ' років')

Отримуємо відомості про екземпляр my_dog:

Кличка Рекс

Вік – 5 років

Можна змінити значення атрибута за допомогою оператора присвоєння:

my_dog.name = 'Лессі'

10�(11)

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

21 of 24

Створення декількох екземплярів

Розділ 4 § 4.1

На основі класу можна створити стільки екземплярів, скільки потрібно.

Створимо другий екземпляр класу Dog з іменем your_dog:

your_dog = Dog('Альма', 'коллі', 2)

print('Твого собаку звуть', your_dog.name)

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

10�(11)

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

22 of 24

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

Розділ 4 § 4.1

  1. Дайте пояснення таких понять у Python: об’єкт, клас, екземпляр класу, атрибут класу.
  1. Створіть екземпляр класу Dog з іменем dog1, який представляє 10-річну вівчарку Джека.
  1. Створіть екземпляр класу Drib з іменем d1, який представляє значення 2/5.
  1. Опишіть клас Drib, об’єктами якого є звичайні дроби.

10�(11)

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

23 of 24

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

Розділ 4 § 4.1

Виконати завдання, що в документі Практичне завдання

10�(11)

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

24 of 24

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

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

Урок 52

10

(11)

teach-inf.com.ua