Skip to content

Урок 21. OOP — класи та об'єкти

Урок 21. OOP — класи та об’єкти

Section titled “Урок 21. OOP — класи та об’єкти”

Тривалість: 45–60 хв
Рівень: OOP Explorer

📖 Словник: клас (англ. “class”) — шаблон/креслення, за яким створюються об’єкти. Об’єкт (англ. “object”) — конкретний екземпляр цього шаблону.

Створи перший клас Player і кілька незалежних об’єктів.

class Player:
pass
marko = Player()
marko.name = "Marko"
marko.hp = 100

💡 Пояснення простою мовою

Section titled “💡 Пояснення простою мовою”

Клас — це креслення (шаблон), за яким створюються об’єкти. Один клас Player може породити скільки завгодно різних гравців — як форма для печива: тісто одне, а печива можна наліпити скільки завгодно. Кожен об’єкт — це окрема «іграшка», яка живе своїм життям.

🧩 Розбираємо по рядках

Section titled “🧩 Розбираємо по рядках”
class Player: # «Створюю шаблон з ім'ям Player»
pass # Поки порожньо — тільки оголошуємо клас
marko = Player() # Роблю перший об'єкт з шаблону Player
marko.name = "Marko"# Додаю об'єкту властивість name
marko.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 = 0
print(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'"]
  1. Створи Monster. 🙋 Підказка: Пороби як Player з pass.
  2. Створи 3 монстрів. 🙋 Підказка: Зроби три рядки m1 = Monster(), m2 = Monster(), m3 = Monster().
  3. Дай кожному name, hp, damage. 🙋 Підказка: Після кожного створення додай m1.name = ... тощо.
  4. Зміни лише один об’єкт і перевір незалежність інших. 🙋 Підказка: Зміни hp одного монстра та print() усіх трьох.

Створи Player, Monster і Treasure, а потім маленьку сцену з об’єктів.

Хоча б раз за урок спробуй передбачити результат коду до запуску. Після запуску порівняй прогноз із реальністю.

Навмисно зламай одну частину програми. Прочитай traceback або спостережи неправильну поведінку, знайди причину й виправ її.

✅ Урок завершено, якщо Марко може

Section titled “✅ Урок завершено, якщо Марко може”
  • пояснити головну ідею своїми словами;
  • виконати основні завдання без копіювання готового рішення;
  • змінити програму під нову вимогу;
  • знайти й виправити хоча б одну власну помилку.

Покращ Challenge однією власною ідеєю. Перед кодом сформулюй її одним реченням.

💡 Підказка для дорослого

Section titled “💡 Підказка для дорослого”

Не виправляйте код одразу. Краще запитайте: «Що ти очікував? Що сталося? Який рядок за це відповідає? Що можна перевірити?»