Презентація. Елементи теорії об’єктно-орієнтованого програмування

Про матеріал
Презентація для вивчення теми "Елементи теорії об’єктно-орієнтованого програмування" в профільному класі
Зміст слайдів
Номер слайду 1

Інформатика 10 клас. Елементи теорії об’єктно-орієнтованого програмування. Створення класів і об’єктів

Номер слайду 2

Основний дефект процедурного стилю програмування полягає в тому, що він слабко пристосований для розроблення великих програм. Із часом програми стають настільки складними, що розібратися в них непросто. Одним із напрямків розв’язування цієї проблеми є об’єктно-орієнтоване програмування (ООП).

Номер слайду 3

Елементи теорії об’єктно-орієнтованого програмування. ООП базується на трьох основних принципах: • наслідування; • поліморфізм; • інкапсуляція. Ці принципи є досить абстрактними та складними для розуміння на початкових етапах ознайомлення з мовою. В ООП загалом використовується значна кількість нових термінів. Щоб свідомо опанувати їх, розглядатимемо їх поступово на прикладах.

Номер слайду 4

Елементи теорії об’єктно-орієнтованого програмування. Чим жираф схожий на тротуар? Тим, що і жираф, і тротуар - сутності, які в розмовній мові є іменниками, а в мові Python - об'єктами. Концепція об'єктів має важливе значення в світі програмування. Об'єкти - це спосіб організації коду в програмі, а також спосіб поділу складних завдань на більш прості, що полегшує їх розв’язання.

Номер слайду 5

Елементи теорії об’єктно-орієнтованого програмування. Щоб як слід розібратися, що таке об'єкти в Python, потрібно поговорити про їх типи. Почнемо з жирафів і тротуарів. Жираф - це тип (або вид, як кажуть біологи) ссавців, а ссавці, в свою чергу, є одним з типів тварин. Крім того, жираф - одухотворений об'єкт, оскільки він живий. Головне, що можна сказати про тротуар, - він неживий, а значить, відноситься до неживих об'єктів. Поняття «ссавець», «тварина», «одухотворений» і «неживий» - це способи класифікації сутностей

Номер слайду 6

Елементи теорії об’єктно-орієнтованого програмування. До основних понять об’єктно-орієнтованого програмування належать об’єкт, клас, метод. Клас (Class) — об’єкт, що складається із сукупності методів і змінних (атрибутів), які описують цей об’єкт. Метод (Method) — сукупність інструкцій мови опрацювання даних.

Номер слайду 7

Елементи теорії об’єктно-орієнтованого програмування. Змінна екземпляра класу (Instance variable) — змінна, що визначена всередині методу класу і яка належить тільки цьому класу. Екземпляр класу (Instance) — окремий об’єкт класу. Змінна класу (Class variable) — звичайна змінна, що визначається всередині класу (а не всередині методів класу), яка є доступною для всіх екземплярів цього класу.

Номер слайду 8

Елементи теорії об’єктно-орієнтованого програмування. Мова ООП має відповідати таким вимогам: • усі дані подаються об’єктами; • програма є набором об’єктів, які взаємодіють між собою та надсилають один одному необхідні повідомлення; • кожен об’єкт може мати у своєму складі інші об’єкти, і для всіх них виділяється власна частина пам’яті; • кожен об’єкт належить одному типу (класу), який задає поведінку об’єктів, створених на їх основі; • об’єкти одного типу можуть виконувати одні й ті са - мі дії.

Номер слайду 9

Елементи теорії об’єктно-орієнтованого програмування. Мова Python є гібридною, оскільки поєднує властивості як процедурного, так і об’єктно-орієнтованого програмування. Така особливість мови Python дала змогу на початкових етапах її вивчення основну увагу приділити синтаксичним конструкціям, функціям і модулям, без яких не може існувати не лише процедурне, а й об’єктно-орієнтоване програмування. Розуміння цих питань допоможе тепер якісно оволодіти й методами ООП.

Номер слайду 10

1) основною складовою мови ООП є клас, головне призначення якого — створення та маніпулювання об’єктами, а також підтримка механізму наслідування як способу адаптації програмного коду для розв’язування однотипних задач і неодноразового його використання; 2)об’єкти мови Python нагадують убудовані типи, які було описано раніше; 3) програма складається з окремих, достатньо незалежних частин, що суттєво полегшує її розуміння й читання; 4) нова програма може розроблятися не «з нуля», а шляхом адаптування вже наявного програмного коду, без його зміни. Характерними особливостями ООП мовою Python є:

Номер слайду 11

У мові Python об'єкти визначаються класами, завдяки яким об'єкти можна розділяти по смисловим групам. Ось діаграма класів, яка відповідає нашим міркуванням про жирафів і тротуарах. Елементи теорії об’єктно-орієнтованого програмування

Номер слайду 12

Під час кожного звернення до класу створюється новий об’єкт — екземпляр класу, тому можна отримати необмежену кількість екземплярів на основі цього класу. Отже, основою ООП є клас — це складний тип даних із певним набором змінних (атрибутів) і функцій (методів) опрацювання значень, що зберігаються в цих змінних. Елементи теорії об’єктно-орієнтованого програмування

Номер слайду 13

Об’єкти в програмі можна створювати лише на основі класів, тому програма починається зі створення класу. Класи можна розробляти самостійно або імпортувати з інших модулів. Вони розміщуються на початку програмного коду. Створення класів і об’єктів. Якщо програма містить класи, то створюється дерево пов’язаних об’єктів. У такому разі реалізується вираз <об’єкт>.<атрибут>. Інтерпретатор починає пошук зазначеного атрибута в дереві пов’язаних об’єктів у такому порядку: спочатку атрибут відшукується в цьому самому об’єкті, потім — у дереві об’єктів знизу догори і зліва направо. Пошук завершується, щойно буде знайдено першу появу атрибута.

Номер слайду 14

Класи створюються за допомогою інструкції class і мають таку загальну структуру: class <ім’я класу> [(класи, що є нащадками)]: <тіло класу>Створення класів і об’єктів. Тіло класу містить змінні та функції класу. Функції в ООП називають методами, а змінні класу — атрибутами. Атрибути створюються як звичайні змінні, а методи — як звичайні функції за допомогою інструкції def. Методи можна розглядати як невеликі програми, призначені для опрацювання об’єктів, тобто вони створюють нові властивості об’єктів, змінюють наявні тощо. Методи фактично є аналогами підпрограм у мовах процедурного програмування.

Номер слайду 15

Щоб визначити, який саме екземпляр класу слід опрацьовувати, у методі обов’язково слід указати перший параметр з іменем self (інші параметри можуть бути відсутні). Цьому параметру автоматично передається посилання на відповідний екземпляр класу. За допомогою параметру self здійснюється доступ до змінних екземпляра класу та методів класу всередині визначеного методу. Параметр self відокремлюється від змінної або методу крапкою. Створення класів і об’єктів

Номер слайду 16

Наприклад, до змінної ask із методу класу можна звернутися так: self.ask. Структуру класу можна подати детальніше: class <ім’я класу> ([суперклас_1, суперклас_2,…]): змінна = значення def ім’я методу (self,…): self.змінна = значення … Створення класів і об’єктів

Номер слайду 17

Необхідно чітко розуміти, що в результаті виконання інструкції class буде створено новий екземпляр класу, який також є об’єктом, посилання на який присвоюється імені змінної. Якщо цей клас має батьківські класи (суперкласи), від якого він є нащадком, то вони вказуються в круглих дужках через кому. Якщо він не є нащадком, то круглі дужки не вказуються. Створення класів і об’єктів Для того щоб можна було використовувати атрибути та методи класу, необхідно створити екземпляр класу за такою структурою: <екземпляр класу> = <ім’я класу> ([параметри])

Номер слайду 18

Тут <екземпляр класу> є звичайним ідентифікатором. У результаті кожного виконання цієї інструкції у пам’яті комп’ютера виділяється ділянка пам’яті, доступ до якої здійснюється за допомогою пов’язаного з ним ідентифікатора, тобто в пам’яті створюється об’єкт. Цей об’єкт має характеристики того класу, у якому його створено, тобто він отримує атрибути свого класу. Створення класів і об’єктів Метод викликається з  основного блоку програми за допомогою інструкції: <екземпляр класу>.<ім’я методу> ([параметри])

Номер слайду 19

Створимо клас сутностей: class Things: pass. Ми дали класу ім'я Things і використовували конструкцію pass, що позначає, що більше ніякої інформації ми вказувати не будемо. Pass - команда, за допомогою якої можна створювати класи або функції, не програмуючи спочатку їх поведінку. Створення класів і об’єктів Метод викликається з  основного блоку програми за допомогою інструкції: <екземпляр класу>.<ім’я методу> ([параметри])

Номер слайду 20

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

Номер слайду 21

Наприклад, класи Inanimate і Animate - нащадки класу Things, який є їхнім предком. Для позначення того, що створюваний клас є нащадком іншого класу, потрібно вказати ім'я класу-предка в дужках після імені нового класу. Створення класів і об’єктівclass Inanimate(Things): pass class Animate(Things): pass

Номер слайду 22

Аналогічно: Створення класів і об’єктівclass Sidewalks(Inanimate): passclass Animals(Animate): pass class Mammals(Animals): passclass Giraffes(Mammals): pass

Номер слайду 23

Тепер, коли у нас є набір класів, пора створити належні їм сутності. Припустимо, у нас є жираф на ім'я Реджинальд. Ми знаємо, що він відноситься до класу Giraffes. Як саме описати в програмі конкретного жирафа, якого звуть Реджинальд? Будемо вважати Реджинальда (reginald) об'єктом класу Giraffes. Щоб «познайомити» Python з нашим Реджинальдом, потрібно написати наступний код: Створення класів і об’єктів reginald = Giraffes()

Номер слайду 24

Кожному з створених класів можна задати характеристики. Характеристики - це особливості, властиві всім об'єктам даного класу, а також об'єктів класів-нащадків. Наприклад, що спільного у всіх тварин? Вони дихають, рухаються і їдять. А у ссавців? Вони вигодовують своїх дитинчат молоком, а також дихають, рухаються і їдять. Жирафи, як відомо, об'їдають листя з верхівок дерев і, як інші ссавці, годують дитинчат молоком, дихають, рухаються і їдять. Якщо додати ці характеристики до нашої діаграми, вийде ось що: Створення класів і об’єктів

Номер слайду 25

Дані характеристики можна представити як дії, або функції - то, що об'єкт або клас може робити. Створення класів і об’єктів

Номер слайду 26

Для додавання функцій класу ми використовуємо ключове слово def, тому клас Animals буде виглядати приблизно так: Створення класів і об’єктів class Animals(Animate): def breathe(self): pass def move(self): pass def eat_food(self): pass. Аргумент self дає функції класу можливість викликати інші функції цього класу (а також класів предків)

Номер слайду 27

Аналогічно: Створення класів і об’єктів class Mammals(Animals): def feed_young_with_milk(self): pass class Giraffes(Mammals): def eat_leaves_from_trees(self): pass. Аргумент self дає функції класу можливість викликати інші функції цього класу (а також класів предків)

Номер слайду 28

Оскільки reginald є об'єктом, ми можемо викликати функції, визначені в його класі (Giraffes) і в його класах-предків. Щоб викликати таку функцію для об'єкта, потрібно після імені об'єкта ввести крапку, а потім ім'я функції. Відповідно, можна датикоманду рухатися або їсти, викликаючи функції таким чином: Створення класів і об’єктівreginald = Giraffes() reginald.move() reginald.eat_leaves_from_trees()

Номер слайду 29

Для того, щоб бачити роботу функцій для об’єктів, замінимо код опису класів: Створення класів і об’єктівclass Animals(Animate): def breathe(self): print('дихає') def move(self): print(‘рухається') def eat_food(self): print(‘їсть')

Номер слайду 30

Для того, щоб бачити роботу функцій для об’єктів, замінимо код опису класів: Створення класів і об’єктівclass Mammals(Animals): def feed_young_with_milk(self): print(‘годує дітей молоком')class Giraffes(Mammals): def eat_leaves_from_trees(self): print(‘їсть листя')

Номер слайду 31

Програма без методу

Номер слайду 32

Програма з одним методом

Номер слайду 33

Програма з двома методами

Номер слайду 34

Задача. Дано два конуси різних розмірів із відомими радіусом основи й висоти. Потрібно обчислити об’єм одного з них і загальну площу іншого.

pptx
Додано
20 квітня 2021
Переглядів
3306
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку