Перейти к основному содержимому
Informatik.uz
Бакалавриат · 2-й курсГлава 1. Объектно-ориентированное программирование

Класс и объект

Основа объектно-ориентированного программирования — понятия класса и объекта. Изучим атрибуты, методы, конструктор и принцип инкапсуляции на примерах Python и с помощью практических заданий.

Тема 1 из 2Чтение: 2 минОбновлено: 27 октября 2026 г.
Список тем (1 из 2)

Объектно-ориентированное программирование (ООП) строит программу как набор взаимодействующих объектов. Объект обладает состоянием (данные — атрибуты) и поведением (действия — методы). Например, у объекта «студент» атрибуты — имя и курс, а метод — переход на следующий курс.

Класс — это шаблон, описывающий общее строение однотипных объектов; объект же — конкретный экземпляр класса. Из одного класса можно создать сколько угодно объектов, и у каждого свои значения атрибутов. Отношение класса и объекта похоже на рецепт торта и готовые торты: рецепт один, а тортов много.

В Python класс объявляется строкой class Student:. Конструктор def __init__(self, name, year): вызывается автоматически при создании объекта и устанавливает атрибуты: self.name = name. Здесь self — ссылка на сам текущий объект, для которого работает метод. Объект создаётся так: s = Student("Ali", 2), метод вызывается через точку (s.promote()), и к атрибуту обращаются так же (s.year).

Один из важных принципов ООП — инкапсуляция: внутреннее состояние объекта скрывают и изменяют только через методы. Например, вместо прямой записи значения в баланс банковского счёта вызывают метод deposit(amount), который проверяет, что сумма положительна. В Python имя внутреннего атрибута принято начинать с нижнего подчёркивания (_balance): это договорённость «снаружи не трогать».

Главное

  • ООП строит программу как набор взаимодействующих объектов.
  • Объект состоит из атрибутов (состояние) и методов (поведение).
  • Класс — шаблон, объект — его конкретный экземпляр; из одного класса создают много объектов.
  • В Python конструктор — это __init__, а ссылка на текущий объект — self.
  • Инкапсуляция защищает внутреннее состояние и контролирует его изменение через методы.

Практические задания

  1. Напишите класс Student: атрибуты name и year, методы promote() (увеличивает курс на 1) и info() (возвращает строку о студенте). Создайте два объекта и вызовите методы.
  2. Создайте класс BankAccount: баланс — внутренний атрибут (_balance); методы deposit(amount) и withdraw(amount) должны проверять сумму (не допускать отрицательную сумму и сумму больше баланса).
  3. Спроектируйте два класса в выбранной вами области (библиотека, магазин или игра): запишите в виде схемы не менее трёх атрибутов и двух методов каждого, затем реализуйте один из них в коде.

Вопросы для закрепления

Проверьте себя: сначала подумайте, потом откройте ответ.

  1. 1Чем отличаются класс и объект?
    Класс — шаблон, описывающий строение, а объект — конкретный экземпляр, созданный по этому шаблону.
  2. 2Что обозначает параметр `self`?
    Ссылку на текущий объект, для которого вызван метод.
  3. 3Для чего нужна инкапсуляция?
    Чтобы защитить внутренние данные от неверных изменений и управлять ими только через контролируемые методы.

Пройдено тем: 0 из 2

Войти и отметить