Класи об'єктів

Клас- об'єкт, що складається з сукупонсті методів і змінних(атрибутів), які описують цей об'єкт.

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

Змінна класу- звичайна змінна, що визначається всередині класу.

Екземпляр класу- окремий об'єкт класу.

Змінна екземпляра класу- змінна, яка визначена всередині методу класу та належить лише цьому класу.

Об'єктно-орієнтоване програмування - це вид програмування, в якому ми програмуємо об'єкти і бачимо графічно, як об'єкт виконує команди програми(наприклад, рухається при керуванні кнопками).

Об'єктно-орієнтоване програмування базується на трьох основних принципах: наслідування, поліморфізм та інкапсуляція.

Що спільного між жирафом та тротуаром? Вони обидва є об'єктами. Але перший є живим об'єктом, а другий - неживим. Тобто ми їх розділили на класи. У мові Python об'єкти визначаються класами. Кожен клас можна розбити на підкласи(нащадки) і ці підкласи будуть мати властивості об'єктів класу(батьків).

Навіщо користуватися класами? При створенні великих програмних проєктів(наприклад, ігор) використовують багато об'єктів. Також проєкт розробляє не одна людина, а інколи десятки чи сотні людей. І ці люди проживають в різних містах, країнах, а інколи й розмовляють різними мовами. Ці люди пишуть кожен свою частину програми. Для того, щоб не заплутатися в програмі, а вкінці скласти її в єдине ціле, та ще й так, щоб ця програма запрацювала, наперед визначають класи об'єктів та їхні властивості. Інколи навіть програмують дії всіх об'єктів класу. А тоді кожен екземпляр (вигляд чи дію) трохи корегують. Це значно спрощує роботу.

Розглянемо використання класів на прикладі комп'ютерної гри. Якщо ви помічали, вселенна гри містить різні об'єкти, які виконують якісь дії. Розіб'ємо об'єкти на три класи : Рослини, Люди, Тварини. Клас Рослини може містити підкласи(менші класи) Дерева, Кущі, Трава, Квіти. А ті в свою чергу також діляться на підкласи. Клас Люди ділиться на класи Воїни, Мирні, Маги. Кожен з цих класів має свої властивості: одяг, зброя, розміщення, дії. тобто, що створити вселенні не порожньою, потрібно створти певну кількість об'єктів кожного класу , які будуть виглядати та рухатися так, як запрогрмовано в їхніх класах. Тоді для кожного об'єкта виправляємо таєкторію руху, змінюємо торхи зовнішній вигляд, колір одягу(можна рандомно) і маємо наповнену вселенну. Деякі об'єкти, які відіграють інші ролі в грі програмуємо додатково. Тому, якщо звернути увагу, одинакові класи об'єтів мають одинакові властивості. Всі нащадки класів(підкласи) мають як свої власні властивості, так і властивості батьківського класу.

Класи об'єктів можна створити самому, або імпортувати ті, які вже є вбудовані в Python. Ми вже викликали клас об'єктів Pen(), при виклику модуля turtle : t=pen(). І тоді використовували об'єкт цього класу. Але для використання кількох об'єктів класу Pen ми користуємося першим способом виклику модуля turtle: import turtle. А команда turtle.Pen() створює кожного разу нову черепаху. Зверніть увагу, що тут слово Pen написане з великої букви.

Також на початку кожної команди вказуємо змінну, дії для якої будемо задавати: x.forward(20). Так одночасно можна малювати кількома черепахами.

import turtle

t=turtle.Pen()

x=turtle.Pen()

Приклад1. Намалювати три прямі трьома різними черепахами. Малювати почати з лівого краю поля

Завдання. Намалювати 5 п'ятикутних зірок різного кольору різними черепахами.

Підказка. Можна намалювати одну зірку, а тоді скопіювати її для різних черепах.

Скористайтеся командою goto(x,y) для переміщення в нову точку поля.

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