ООП основные понятия и предпосылки возникновения.

Тема 8. Объектно-ориентированное программирование

Для того чтобы понять для чего необходимо объектно-ориентированное программирование необходимо заглянуть назад в прошлое и понять причины, вызвавшие его появление.

Одним из традиционных подходов к проектированию компьютерных программ был процедурно-ориентированный стиль. В нем наивысший приоритет принадлежит действи­ям, которые выполняет элемент программы, в то время как данные, с которыми про­грамма работает, остаются как бы на втором плане. Типичная процедурно-ориентиро­ванная программа — это последовательность инструкций, выполняемых одна за другой. В такой программе, как правило, имеются многочисленные точки ветвления, в которых выбирается лишь одно из нескольких возможных направлений выполнения, в зависи­мости от условий в программе. В старомодных, процедурно-ориентированных программах доступ к данным был воз­можен из любой части программы, а операции над ними — посредством любой инструкции.

Этот подход хорош для очень малых проектов, но при создании больших и сложных программ разработчику приходится отслеживать все возможные ветвления в коде про­граммы, поскольку все части ее более или менее взаимосвязаны. Хуже того, различные фрагменты кода программы могут получить доступ к одному и тому же значению дан­ных — причем они могут не только читать, но и изменять его. При разработке одной части программы можно и не знать о том, что данные, с которыми она работает, могут быть изменены другими частями программы.

Как же преодолеть эту проблему? Типичный человеческий подход к преодолению сложной проблемы — разбить ее на более простые части. Таким образом, единая программа делится на отдельные модули-объекты.

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

Каждая часть программы на С#, которая представляет объект реального или концептуального мира, соот­ветственно называется объектом (например, автомобиль).

Существенные атрибуты объекта реального мира должны быть представлены в соот­ветствующем объекте программы на С#. Эти атрибуты называются переменными экземп­ляра (например, марка автомобиля, текущая скорость, местоположение, регистрационный номер, цвет и т.д.) и отражают текущее состояние объекта.

Поведение объекта реального мира представлено в объекте программы С# в форме методов (двигаться вперед, назад, остановиться и т.д. Методы объекта выполняют действия с переменными экземпляра этого же объекта.

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

Один раз разработав класс, на его основе можно создавать произвольное количество объектов. На каждый объект должна ссылаться как минимум одна объектная переменная, но это не означает, что она может быть только одна. Если на некоторый объект не ссылается ни одна объектная переменная, среда выполнения этот объект из памяти удаляет. Данный процесс получил название «сборка мусора».