Урок 21. OOP — класи та об'єкти
Урок 21. OOP — класи та об’єкти
Section titled “Урок 21. OOP — класи та об’єкти”Тривалість: 45–60 хв
Рівень: OOP Explorer
📖 Словник: клас (англ. “class”) — шаблон/креслення, за яким створюються об’єкти. Об’єкт (англ. “object”) — конкретний екземпляр цього шаблону.
🎯 Місія
Section titled “🎯 Місія”Створи перший клас Player і кілька незалежних об’єктів.
🧠 Ключова ідея
Section titled “🧠 Ключова ідея”class Player: pass
marko = Player()marko.name = "Marko"marko.hp = 100💡 Пояснення простою мовою
Section titled “💡 Пояснення простою мовою”Клас — це креслення (шаблон), за яким створюються об’єкти. Один клас Player може породити скільки завгодно різних гравців — як форма для печива: тісто одне, а печива можна наліпити скільки завгодно. Кожен об’єкт — це окрема «іграшка», яка живе своїм життям.
🧩 Розбираємо по рядках
Section titled “🧩 Розбираємо по рядках”class Player: # «Створюю шаблон з ім'ям Player» pass # Поки порожньо — тільки оголошуємо клас
marko = Player() # Роблю перший об'єкт з шаблону Playermarko.name = "Marko"# Додаю об'єкту властивість namemarko.hp = 100 # Додаю властивість hp (здоров'я)🔎 Приклад: запускай і дивись
Section titled “🔎 Приклад: запускай і дивись”class Monster: pass
goblin = Monster()goblin.name = "Goblin"goblin.hp = 30
dragon = Monster()dragon.name = "Dragon"dragon.hp = 200
print(goblin.name, "має", goblin.hp, "HP")print(dragon.name, "має", dragon.hp, "HP")
goblin.hp = 0print(goblin.name, "має", goblin.hp, "HP")print(dragon.name, "має", dragon.hp, "HP") # Dragon не змінився!Тут бачимо: goblin і dragon — це два різних об’єкти. Змінивши одного, ми НЕ чіпаємо іншого.
graph TD
A["class Player (шаблон)"] --> B["marko = Player()"]
A --> C["anna = Player()"]
A --> D["bot = Player()"]
B --> E["marko.name = 'Marko'"]
C --> F["anna.name = 'Anna'"]
✏️ Основні завдання
Section titled “✏️ Основні завдання”- Створи
Monster. 🙋 Підказка: Пороби якPlayerзpass. - Створи 3 монстрів.
🙋 Підказка: Зроби три рядки
m1 = Monster(),m2 = Monster(),m3 = Monster(). - Дай кожному
name,hp,damage. 🙋 Підказка: Після кожного створення додайm1.name = ...тощо. - Зміни лише один об’єкт і перевір незалежність інших.
🙋 Підказка: Зміни
hpодного монстра таprint()усіх трьох.
⭐ Challenge
Section titled “⭐ Challenge”Створи Player, Monster і Treasure, а потім маленьку сцену з об’єктів.
🧪 Перед запуском
Section titled “🧪 Перед запуском”Хоча б раз за урок спробуй передбачити результат коду до запуску. Після запуску порівняй прогноз із реальністю.
🐞 Debug Mission
Section titled “🐞 Debug Mission”Навмисно зламай одну частину програми. Прочитай traceback або спостережи неправильну поведінку, знайди причину й виправ її.
✅ Урок завершено, якщо Марко може
Section titled “✅ Урок завершено, якщо Марко може”- пояснити головну ідею своїми словами;
- виконати основні завдання без копіювання готового рішення;
- змінити програму під нову вимогу;
- знайти й виправити хоча б одну власну помилку.
🏠 Домашня місія
Section titled “🏠 Домашня місія”Покращ Challenge однією власною ідеєю. Перед кодом сформулюй її одним реченням.
💡 Підказка для дорослого
Section titled “💡 Підказка для дорослого”Не виправляйте код одразу. Краще запитайте: «Що ти очікував? Що сталося? Який рядок за це відповідає? Що можна перевірити?»