Находишься в поисках способов облегчить свой труд в процессе написания программного обеспечения? - об одном из них мы сегодня и поговорим.

Сама концепция этого подхода к программированию достаточно проста для понимания, и заключается она в...

...совокупности достаточно большого количества факторов, о которых и пойдет речь ниже (надеюсь Вы не ожидали увидеть пост, состоящий из двух предложений).

Хочется верить, что Вам уже доводилось иметь хоть какой-либо опыт в программировании, иначе я не могу гарантировать что значения всех слов, которыми я буду оперировать в процессе написания, будет для Вас очевидным.

Для начала напомню тот факт, что в языках высокого уровня простейшими элементами, доступными программисту, являются:

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

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

Класс

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

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

Объект

Для простоты понимания это слово можно воспринимать буквально - как некую сущность, находящуюся в каком-либо состоянии и имеющую возможность совершать некий набор действий. Также как и реальные объекты, объекты "компьютерные" живут своей жизнью: рождением считается создание объекта (выделение памяти), а смертью - уничтожение (освобождение памяти). Промежуток между этими двумя событиями принято называть временем жизни объекта.

Если же есть желание взглянуть на объект с технической точки зрения, то он представляет собой экземпляр какого-либо класса, то есть как раз указатель на область оперативной памяти, данные по которому подчиняются "правилам", установленными в соответствующем классе. То есть для него могут выполняться заранее определенные функции, что будет приводить к определенным изменениям в его состоянии (то есть совокупности переменных).

Все написанное выше можно считать лишь неким подобием введения в ООП, дающим поверхностное представление о том, что же понимают под этой странновато звучащей фразой, и на какие же ""объекты" нужно "ориентироваться". Сама же теория является намного более обширной, и я собираюсь еще не раз вернуться к ее обсуждению в теории и с более практической точки. Например, возможно для многих остался не ясным вопрос: какие же преимущества предоставляет использование ООП перед более традиционным функциональным программированием? Ответить на него я и собираюсь в одном из следующих постов, не пропустить публикацию которого можно с помощью RSS.

04 января 2008 |  Иван Блинков  |  Теория