Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

1️⃣ Создание простого класса

📌 Задание: Создайте класс Car с атрибутами brand и model. Создайте объект и выведите информацию о машине.

Пример работы:

Марка: Toyota  
Модель: Corolla

2️⃣ Конструктор с параметрами

📌 Задание: Создайте класс Book, который принимает в конструкторе title и author, и выводит сообщение при создании объекта:

Книга '1984' автора George Orwell добавлена в библиотеку

3️⃣ Изменение атрибутов объекта

📌 Задание: Создайте класс User с атрибутами name и age. После создания объекта измените возраст и выведите обновленные данные.

Пример работы:

Имя: Alice, Возраст: 25  
Возраст изменен на: 26

4️⃣ Метод класса для вывода информации

📌 Задание: Создайте класс Student с атрибутами name, grade и методом info(), который выводит строку:

Студент: John, Оценка: A

5️⃣ Метод, изменяющий состояние объекта

📌 Задание: Создайте класс Lamp с атрибутом is_on. Добавьте метод toggle(), который переключает состояние лампы (включено/выключено).

Пример работы:

Состояние: Выключено  
toggle() → Включено

6️⃣ Подсчет количества созданных объектов

📌 Задание: Создайте класс Counter, который хранит количество созданных экземпляров. Каждый новый объект увеличивает счетчик.

Пример работы:

Создано объектов: 3

7️⃣ Конструктор с параметром по умолчанию

📌 Задание: Создайте класс Employee с атрибутом position, который по умолчанию равен 'Intern', если не указано иначе.

Пример работы:

Имя: Bob, Должность: Intern  
Имя: Alice, Должность: Manager

8️⃣ Деструктор с уведомлением

📌 Задание: Создайте класс Session, который выводит сообщение "Сессия завершена" при удалении объекта (в деструкторе __del__).

Пример работы:

Создание сессии  
Сессия завершена

9️⃣ Метод, использующий внутренние данные

📌 Задание: Создайте класс Rectangle с атрибутами width и height и методом area(), который возвращает площадь.

Пример работы:

Площадь: 20

🔟 Использование нескольких объектов одного класса

📌 Задание: Создайте класс Dog с атрибутом name и методом bark(). Создайте два объекта и вызовите метод для каждого.

Пример работы:

Rex: Гав!  
Buddy: Гав!

1️⃣1️⃣ Использование self в методе

📌 Задание: Создайте класс Account с методом deposit(amount), который добавляет сумму к балансу объекта.

Пример работы:

Баланс: 0  
deposit(100) → Баланс: 100

1️⃣2️⃣ Атрибут класса (общий для всех объектов)

📌 Задание: Создайте класс Robot с атрибутом type = "android". Создайте несколько объектов и покажите, что у всех один и тот же тип.

Пример работы:

R1.type → android  
R2.type → android

1️⃣3️⃣ Класс с методом сравнения объектов

📌 Задание: Создайте класс Box с атрибутом volume. Добавьте метод compare(other), который возвращает, у какой коробки объем больше.

Пример работы:

Box1 > Box2

1️⃣4️⃣ Приватный атрибут и метод доступа

📌 Задание: Создайте класс BankAccount с приватным атрибутом __balance и методом get_balance(), который возвращает значение.

Пример работы:

Баланс: 500

1️⃣5️⃣ Комбинированный пример с конструктором, методом и деструктором

📌 Задание: Создайте класс FileManager, который:

  • принимает имя файла в конструкторе,
  • имеет метод open() (выводит "Файл открыт"),
  • имеет деструктор, который выводит "Файл закрыт".

Пример работы:

Создание FileManager("data.txt")  
Файл открыт  
Файл закрыт

1️⃣6️⃣ Класс с конструктором, значением по умолчанию и приватным полем

📌 Задание: Создайте класс Profile с приватным атрибутом __status, который по умолчанию равен "offline". В конструктор передается только имя пользователя. Добавьте метод set_status(new_status) для изменения статуса и метод info() для вывода данных.

Пример работы:

Имя: Alex, Статус: offline  
set_status("online")  
Имя: Alex, Статус: online

1️⃣7️⃣ Статический счетчик активных пользователей

📌 Задание: Создайте класс UserSession со статической переменной active = 0. Конструктор увеличивает active, деструктор уменьшает. Добавьте метод current() для вывода актуального числа активных сессий.

Пример работы:

Активных сессий: 0  
Создание 3 объектов → Активных сессий: 3  
Удаление одного → Активных сессий: 2

1️⃣8️⃣ Конструктор, приватные данные и вычисляющий метод

📌 Задание: Создайте класс Circle с приватным атрибутом __radius. В конструкторе радиус задается, но если он меньше нуля — автоматически становиться равным 1. Добавьте метод area() для вычисления площади.

Пример работы:

Радиус: -5 → Исправлен на 1  
Площадь: 3.14

1️⃣9️⃣ Класс с параметрами по умолчанию и методом изменения

📌 Задание: Создайте класс Message с атрибутами text и priority, где priority по умолчанию "normal". Добавьте метод update(text=None, priority=None), который изменяет только переданные параметры.

Пример работы:

Message("Hello") → priority: normal  
update(priority="high") → priority: high

2️⃣0️⃣ Приватный счётчик созданных объектов

📌 Задание: Создайте класс Order с приватной статической переменной __count, хранящей количество созданных заказов. Конструктор увеличивает счётчик и присваивает объекту номер заказа. Метод info() выводит номер заказа. Добавьте статический метод total() для вывода общего количества заказов.

Пример работы:

Order #1  
Order #2  
Всего заказов: 2

2️⃣1️⃣ Деструктор и логирование действий

📌 Задание: Создайте класс Logger с атрибутом message, который в конструкторе выводит "Создан логгер". Метод log() выводит сообщение. Деструктор выводит "Логгер уничтожен".

Пример работы:

Создан логгер  
log("Ошибка") → Ошибка  
Логгер уничтожен

2️⃣2️⃣ Класс с вложенным вычислением и значениями по умолчанию

📌 Задание: Создайте класс Triangle с атрибутами a, b, c; по умолчанию стороны равны 1. Добавьте приватный метод __perimeter() и публичный метод info(), который выводит периметр.

Пример работы:

Стороны: 3, 4, 5  
Периметр: 12

2️⃣3️⃣ Статический метод и приватное поле

📌 Задание: Создайте класс Config с приватным атрибутом __version = "1.0". Добавьте статический метод version(), который выводит текущую версию. Конструктор принимает имя конфигурации. Метод info() выводит имя и версию.

Пример работы:

Config.version() → 1.0  
Config("Main").info() → Main v1.0

2️⃣4️⃣ Изменяемое состояние, приватные данные и деструктор

📌 Задание: Создайте класс Timer с приватным атрибутом __running = False. Метод start() устанавливает его в True, метод stop() — в False. Деструктор выводит текущее состояние таймера.

Пример работы:

start() → Таймер запущен  
stop() → Таймер остановлен  
Удаление объекта → Состояние: остановлен

2️⃣5️⃣ Полный комплекс: конструктор, приватные данные, статические поля, методы, деструктор

📌 Задание: Создайте класс Database:

  • приватное статическое поле __instances = 0,
  • конструктор увеличивает его и принимает name,
  • приватное поле __connected = False,
  • метод connect() включает подключение,
  • метод status() выводит имя базы и состояние,
  • статический метод count() — количество экземпляров,
  • деструктор уменьшает __instances.

Пример работы:

Database.count() → 0  
Создание двух БД → count() = 2  
connect() → Подключено  
status() → DB1: подключено  
Удаление одной → count() = 1

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors