💡 Мета уроку
Зрозуміти основи Об'єктно-Орієнтованого Програмування (ООП) через поняття класу і об'єкта
🎯 Що таке ООП?
ООП - це інший спосіб написання програм. Він відрізняється від процедурного програмування насамперед тим, що основний акцент ставиться не на алгоритми, а на розробку структур даних. Згідно з об'єктно-орієнтованим підходом, будь-яка програма є сукупністю взаємодіючих між собою об'єктів, які мають властивості та поведінку.
🐸 4 Основних принципи ООП:
- Інкапсуляція - приховування внутрішніх деталей
- Спадковість - створення нових класів на основі існуючих
- Поліморфізм - одна дія, багато реалізацій
- Абстракція - спрощення складних систем
🎯 Що таке КЛАС у програмуванні?
Клас - це КОНСТРУКТОР або ФОРМА для печива! 🍪
Уявіть, що клас - це форма для випікання печива. Вона визначає:
- 📏 Форму печива (кругле, серцеподібне)
- 🎨 Колір та прикраси
- 📐 Розмір печива
- 🔧 Конструктор - спосіб створення печива
Але це ще НЕ САМЕ печиво! Це лише форма!
🎯 Що таке ОБ'ЄКТ у програмуванні?
Об'єкт - це реальне ПЕЧИВО з форми! 🍪
Коли ми використовуємо форму (клас), ми отримуємо:
- 🍪 Реальне печиво з шоколадом
- 🍪 Інше печиво з горіхами
- 🍪 Ще одне печиво з цукровою пудрою
Кожне печиво - це ОБ'ЄКТ, створений за формою (класом)!
👨💻 ПРИКЛАД КЛАСУ ТА ОБ'ЄКТУ У C#:
// 🍪 Це КЛАС - форма для печива
class Печиво
{
// ВЛАСТИВОСТІ (як печиво виглядає)
public string Назва;
public string Колір;
public int Розмір;
// КОНСТРУКТОР - спеціальний метод для створення об'єкта
public Печиво(string назва, string колір, int розмір)
{
Назва = назва;
Колір = колір;
Розмір = розмір;
}
// МЕТОД - що може робити печиво
public void ПоказатиІнфо()
{
Console.WriteLine($"Печиво '{Назва}' ({Колір}), розмір: {Розмір}см");
}
}
// А це ОБ'ЄКТИ - реальні печива!
Печиво печивоЗШоколадом = new Печиво("Шоколадне", "Коричневий", 10);
Печиво печивоЗГоріхами = new Печиво("Горіхове", "Золотий", 8);
// Викликаємо методи об'єктів
печивоЗШоколадом.ПоказатиІнфо();
печивоЗГоріхами.ПоказатиІнфо();
КЛАС
Форма/Конструктор/Шаблон
Приклад:
class Frog { }
class Student { }
class Car { }
Це ще не об'єкт!
ОБ'ЄКТ
Конкретна річ
Приклад:
Frog кваква = new Frog();
Student анна = new Student();
Car мояТачка = new Car();
Це реальний об'єкт!
🐸 Тепер повернемось до нашої жаби!
СЦЕНА 1: КРИЗА САМОІДЕНТИФІКАЦІЇ
- Кваква (стурбовано дивиться на своє відображення у ставку):
От життя! Сиджу я тут у класі Amphibian, а мрію бути у класі Mammal! Чому кіт Мурчик може грітися на сонечку та пити молочко, а я мушу сидіти у болоті? - Мурчик (ліниво позіхаючи):
М'яу... Ти, Квакво, не розумієш основ OOP! Ти створена як class Frog : Amphibian, а я - class Cat : Mammal. Це наша спадковість!
👨💻 КЛАС FROG З КОНСТРУКТОРОМ:
// 🐸 Клас описує, що таке жаба
class Frog
{
// ВЛАСТИВОСТІ - які дані є у жаби
public string Name;
public int JumpPower;
public string Color;
// КОНСТРУКТОР - метод для створення жаби з параметрами
public Frog(string name, int jumpPower, string color)
{
Name = name;
JumpPower = jumpPower;
Color = color;
Console.WriteLine($"Створено нову жабу: {name}!");
}
// МЕТОДИ - що може робити жаба
public void Croak()
{
Console.WriteLine($"{Name}: Ква-ква! Я готова до біології!");
}
public void Jump()
{
Console.WriteLine($"{Name} ({Color}) стрибає на {JumpPower} см! 🐸");
}
}
// 🎯 Програма створює КОНКРЕТНІ ОБ'ЄКТИ-жаби
class Program
{
static void Main()
{
// Створюємо ОБ'ЄКТИ за допомогою конструктора
Frog кваква = new Frog("Кваква", 42, "зелений");
Frog леся = new Frog("Леся", 35, "коричневий");
Frog бульба = new Frog("Бульба", 50, "жовтий");
// Викликаємо методи об'єктів
кваква.Croak();
леся.Jump();
бульба.Croak();
бульба.Jump();
}
}
💡 Важливо розрізняти!
КЛАС = опис (як креслення) 📖
КОНСТРУКТОР = інструмент для створення 🔧
ОБ'ЄКТ = реальна річ (як готовий будинок) 🏠
З одного класу можна створити багато об'єктів!
🎮 Гра: Створи свій об'єкт-жабу!
Клас: "Frog" 🐸
Спробуй створити різних жабок!
👨💻 ЩО ВИВЧИЛИ:
// 1. Клас - це шаблон
class Frog { ... }
// 2. Конструктор створює об'єкт
Frog жаба = new Frog("Ім'я", 100, "колір");
// 3. Об'єкт - це конкретна річ
жаба.Croak(); // Виклик методу
жаба.Name; // Використання властивості
❓ Питання для роздумів
- Чим клас відрізняється від об'єкта?
- Навіщо потрібен конструктор?
- Скільки об'єктів можна створити з одного класу?
- Чому ООП - це зручно для програмування?
✅ Висновок
ООП - це спосіб організації коду, де ми працюємо з об'єктами, що мають властивості та методи. Клас - це шаблон, а об'єкт - конкретний екземпляр цього шаблону. Конструктор допомагає нам створювати об'єкти з потрібними параметрами!