24
Цар царів, король королів, тип типів Об'єктно-орієнтоване програмування як спосіб упорядкування коду Основи програмування мовою Python, лекція 7 Київ, 2015

Prometheus. Масовий онлайн курс "Основи програмування". Лекція 7

Embed Size (px)

Citation preview

Цар царів, король королів, тип типів

Об'єктно-орієнтоване програмування як спосіб упорядкування коду

Основи програмування мовою Python, лекція 7 Київ, 2015

"якась" програма...

11B7:0100 B82301 MOV AX,0123 ; Внести значення 0123h до AX

11B7:0106 8BD8 MOV BX,AX ; Переслати вміст AX до BX

11B7:0108 03D8 ADD BX,AX ; Додати AX і BX

11B7:010A 8BCB MOV CX,BX ; Переслати вміст BX до CX

11B7:010C 31C0 XOR AX,AX ; Очистити AX

11B7:010E CD20 INT 20 ; Кінець програми

підтримка програмного продукту

розширення функціональності

лінійна

розгалуження

цикл

початок

кінець

Структурне програмування

Процедурне програмування

• розділення коду на частини

• функції – не лише повторювані фрагменти

• винесення цих частин в окремі функції

• але будь-які фрагменти коду, призначені для досягнення певної мети

– процедури, функції, підпрограми

Процедурне програмування

Об'єктно-ОрієнтованеПрограмування

Дані

Функції

Модулі

Об'єктно-орієнтоване програмування

Дані

океан даних

Об'єкт

Програма

Модуль

Функція

Складний механізм всередині

Панцир, що приховує внутрішню будову

Інкапсуляція

класи – ваши власні типи даних

об'єкти – окремі екземпляри цих класів

(змінні типу)

ви можете створити скільки завгодно

своїх класів та об'єктів

оператор pass позначає порожній

блок коду

в класах оголошуються поля –

вкладені змінні, де зберігатимуться дані

тут їм можна присвоїти початкові

значення або None – головне повідомити

інтерпретатору, що оголошується нова

змінна

всі об'єкти цього класу міститимуть

оголошені в класі поля, до яких можна

звернутися через крапку:

vova.name = 'Volodymyr'

print vova.name

також в класах оголошуються методи –

вкладені функції для обробки даних

вони так само доступні через крапку:

vova.birth_year = 1970

print vova.get_age()

для ініціалізації об'єктів даними прямо

під час створення оголошується

"конструктор"

за наявності інтерпретатор викликає

його одразу після створення

порожнього об'єкту

ще кілька методів

...

...

• повторення поведінки батьківського класу

• розширення функціональності інших класів

класи можуть наслідувати інші,

успадковуючи таким чином всі поля та

методи "батьківських"

... дочірні класи можуть викликати методи

батьківських, не переписуючи їх

повністю, а лише доповнюючи;

для цього вони мають наслідуватися

від стандартного класу object

• однаковий зовнішній вигляд, але різна реалізація

...

...

при наслідуванні класи можуть

перевизначати батьківські методи

таким чином різні класи можуть мати

однакові поля та методи, але

працювати по-різному

• побудова програми навколо даних

• виділення взаємодіючих сутностей

• високий рівень структурованості програми

Дякую за увагу!Над випуском працювали:

• Павлюченко Нікіта Сергійович

• Панібрат Марія Олексіївна

НТУУ "КПІ", 2015