Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
все билеты ооп.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
932.08 Кб
Скачать

Билет №4.Классы и объекты, Члены классов. Статические члены классов.

  1. Класс - принципиально новый тип данных, который создается программистом

Класс определяет собой множество объектов

    • имеющих общую структуру

    • обладающих одинаковым поведением.

Объект является представителем (экземпляром) какого-либо класса.

Объект обладает

    • состоянием

    • поведением

    • идентичностью.

Состояние объекта характеризуется

    • набором его свойств (атрибутов)

    • текущими значениями каждого из этих свойств.

Поведение объекта - выполнения определенной последовательности характерных для него действий (методов).

Идентичность объекта – это свойство (или набор свойств) объекта, которое позволяет отличить его от всех прочих объектов того же типа (класса).

Класс – это шаблон который определяет атрибуты и методы объектов.

Пример: форма для печенья в виде буквы «А» - это не буква А, она лишь определяет , как буква А выглядит. Если вам необходим объект, представляемый классом, создаете экземпляр. Каждый экземпляр содержит те же самые атрибуты и методы, которые определены в классе. У каждого экземпляра свое собственное состояние - своя копия атрибутов. Поведение объекта определяется его методами

Связи между объектами

  • Классы и объекты в рамках модели не существуют сами по себе, они связаны с другими объектами

  • Для более наглядного изложения структуры классов и объектов и взаимосвязей между ними используется язык UML – унифицированный язык моделирования

(Unified Modelling Language)

  1. Сам класс в итоге определяется как список своих членов, а именно полей (свойств) и методов/функций/процедур. В зависимости от языка программирования к этому списку могут добавиться константы, атрибуты и внешние определения.

  2. Статические члены класса

Вы можете определить член класса как статический (static member) или член экземпляра (instance member). По умолчанию каждый член определен как член экземпляра. Это значит, что для каждого экземпляра класса делается своя копия этого члена. Когда член объявлен как статический, имеется лишь одна его копия. Статический член создается при загрузке содержащего класс приложения и существует в течение жизни приложения. Поэтому вы можете обращаться к члену, даже если экземпляр класса еще не создан. Статический метод или поле - общий для всех объектов класса.Статические методы объявляются с модификатором static. Обращение к статическим методам и полям осуществляется с помощью оператора разрешения области видимости. Внутри статических методов недоступны не-статические члены (а также this). Статические поля необходимо явно инициализировать в файле .cpp

Константые поля встроенных типов можно инициализировать в .h файле

Билет №5. Интерфейс и реализация. Чисто абстрактные классы. Интерфейс как ответственность (контракт)

  • Поведение, доступное пользователям класса (программистам) - интерфейс

  • Класс рассматривается как «черный ящик», работать с которым можно исключительно через его интерфейс

Суть «черного ящика» в том, что программисту-пользователю не нужно заботиться о реализации классов, которые он использует, достаточно знать его интерфейс

Интерфейс описывает, как объект взаимодействует с внешним миром. Обратная сторона объекта связана с его реализацией. Пользователю разрешен доступ только к тому, что описано в интерфейсной части. Реализация определяет, как достигается выполнение обязанностей, заявленных в интерфейсной части.

Иногда для эффективного и правильного использования класса недостаточно знать его интерфейс, необходимы также детали реализации. Например, если мы для реализации класса массива используем двусвязный список, то код, часто использующий произвольный доступ к нему будет неэффективен, и об этом нужен соответствующий комментарий, чтобы программист-пользователь не допустил ошибку не поняв семантики класса.

Чисто абстрактные классы

  • Классы, которые содержат n абстрактные методы называются абстрактными

  • Классы, которые содержат только абстрактные методы называются чисто абстрактными

  • Нельзя создать экземпляр абстрактного класса

  • А указатель на абстрактный класс – можно!

  • Указывает на экземпляр одного из производных классов

  • Абстрактные методы должны быть переопределены в производных классах

Имеют собственное название – интерфейс

Интерфейс как ответственность (контракт)

  • Для ООП подхода характерно «разделение труда» - каждый объект отвечает за узко определенную задачу

  • Объект может решать несколько задач, например студент может решать задачи, связанные с учебой и внеучебной работой.

В таких случаях говорят, что объект играет несколько ролей

  • В ООП роли описываются интерфейсами

  • Чтобы «заставить» объект выполнять его задачи другие объекты используют его поведение (вызывают его методы)

  • Также говорят, что используя поведение объекты посылают друг другу сообщения или запрашивают услугу

  • Объекты взаимодействуют друг с другом через интерфейс (который определяется типом (классом) объекта)

  • Термины «метод», «услуга», «сообщение» - синонимы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]