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

Подбельский В.В. Язык C#. Базовый курс. – М., Финансы и статистика, 2011.

Лекция 1. Особенности объектно-ориентированного программирования

Языки низкого уровня в самой большей степени (по сравнению со всеми остальными языками) заставляют программиста думать в терминах структуры компьютера, а не в структуре проблемы, которую он решает. Программист должен установить ассоциацию между машинной моделью и моделью проблемы, которая действительно должна быть решена в «пространстве проблемы», где проблема существует.

Альтернативой к моделированию машины является моделирование решаемой проблемы.

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

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

В языках Процедурного Программирования (ПП) существуют и переменные, и массивы, и функции, и структуры, и объединения, которые можно назвать объектами, но создаются они с помощью базовых или производных типов данных, ключевых слов, определенных правил. А в языках ООП все является объектом: от констант и переменных «базовых типов» до данных агрегированных типов любой сложности. Типы в языке C# вводятся с помощью классов (а также перечислений, структур, интерфейсов, делегатов и массивов).

Класс — это тип, описывающий устройство объектов. Понятие «объект» подразумевает нечто, что обладает определённым состоянием и поведением. Кроме того, задается признак, по которому объекты одного класса можно отличить от других объектов этого же класса (объекты одного класса могут существовать одновременно).

Говорят, что объект — это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Объект описывается своим классом или с другой стороны класс описывает все возможные состояния объектов данного класса (то, что объект может знать) и его поведение (то, что он может делать).

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

Объект – это ни в коем случае не функция, т.к. в языках ПП после того, как функция прекращает свою работу, участки памяти, выделенные для ее локальных переменных, считаются свободными. А объект после того, как его привели в активное состояние, работает в течение всего времени работы программы до тех пор, пока не будет уничтожен специальным образом.

Существует несколько определений «объекта»:

Опр_1. Объектом называется совокупность данных (полей), определяющих состояние объекта, и набор функций (методов), обеспечивающих изменение указанных данных (состояние объекта) и доступ к ним.

Опр_2. Объект – это инкапсуляция множества операций (методов), доступных для внешних вызовов, и состояния, запоминающего результаты выполнения указанных операций.

Обязательные признаки объектов:

  • различимость;

  • возможность одного объекта находиться в разных состояниях (в разное время);

  • возможность динамического создания объектов;

  • «умение» объектов взаимодействовать друг с другом с помощью обменов сообщениями;

  • наличие методов, позволяющих объекту реагировать на сообщения (на внешние для объекта воздействия);

  • инкапсуляция данных внутри объектов.

Таким образом, класс есть механизм, задающий структуру (поля данных) всех однотипных объектов и все методы, относящиеся к объектам.

Основные характеристики ООЯ (объектно-ориентированных языков):

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