Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Развитие технологии и языков программирования. История ООП |
На заре появления вычислительных машин программирование, как область знания, находилось в зачаточном состоянии. Первые программы создавались посредством переключателей на панели компьютера. Очевидно, что такой способ подходил только для небольших программ. Затем программы стали писать на языке машинных команд, а изобретение ассемблера позволило писать уже сравнительно длинные программы. Следующий шаг был сделан в 1950 году, когда был создан первый язык программирования высокого уровня Фортран.
Теперь программисты могли создавать программы длиной до нескольких тысяч строк длиной. Однако язык программирования, легко понимаемый в простых программах, когда дело касалось больших программ, становился нечитаемым (и неуправляемым). Избавление от таких неструктурированных программ пришло после изобретения в 1960 году языков структурного программирования (Алгол, Паскаль и С). Структурное программирование подразумевает точно обозначенные управляющие структуры, программные блоки отсутствие (или минимальное использование) операторов GOTO, автономные подпрограммы, в которых поддерживается рекурсия и локальные переменные. С появлением структурного программирования появилась возможность разбиения программы на составляющие ее элементы. Теперь уже один программист был в состоянии создать и поддерживать программу в несколько десятков тысяч строк диной.
Хотя структурное программирование и принесло выдающиеся результаты, даже оно оказалось несостоятельным, когда программа достигала определенной длины. Чтобы писать более сложную программу, необходим был новый подход к программированию. В итоге были разработаны принципы объектно-ориентированного программирования, которое аккумулировало лучшие идеи, воплощенные в структурном программировании, в сочетании с мощными новыми концепциями, позволяющими оптимально организовать ваши программы. ООП позволяет разложить проблему на связанные между собой задачи. Каждая проблема становится самостоятельным объектом, содержащим свои собственные коды и данные, которые относятся к этому объекту. В этом случае исходная задача в целом упрощается, и программист получает возможность оперировать с гораздо большими по объему программами.
Объект. Свойства и методы объекта |
В объектно-ориентированном программировании базовыми единицами программ и данных являются объекты. (Можно сказать, что в чисто объектно-ориентированной системе ничего, кроме объектов нет).
Объект - это осязаемая сущность, которая четко проявляет свое поведение.
Объект состоит из следующих трех частей:
- имя объекта;
- состояние (переменные состояния);
- методы (операции).
Интерфейс объекта с его окружением определен полностью его методами, так как к его состоянию нет другого доступа извне, как через методы.
Объект сохраняет свое состояние от обращения к обращению. Изменение состояний производится только через вызов методов этого объекта. Этим существенно ограничивается возможность введение объекта в недопустимое состояние и/или несанкционированное разрушение объекта. Возможность управлять состояниями объекта через вызов методов в конечном итоге будет определять поведение объекта.
Реализация методов (то есть, операций, выполняемых объектом), может быть задана различными способами. Однако это "внутренне дело" объекта.
Объект может посылать сообщения другим объектам и принимать сообщения от них.
Сообщение является совокупностью данных определенного типа, передаваемых объектом отправителем объекту получателю, имя которого указывается в сообщении. Получатель реагирует или никак не реагирует (защита) на сообщение выполнением некоторой операции (метода), имя которого также может быть указано в сообщении.
По своему смыслу объект является представителем некоторой реальной сущности - реального объекта, процесса, ситуации, которая:
- поддается хранению и обработке;
-способна воздействовать на другие объекты и вычислительную среду, посылая сообщения и реагировать на принимаемые сообщения.
Совокупность объектов в системе ООП образует среду, в которой выполняются вычисления путем обмена сообщениями между объектами. Состояние вычислительной среды в ООП оказывается разделенным на состояния объектов, это в принципе отличает объектно-ориентированные вычисления от вычислений, заданных на процедурно-ориентированных языках. Процедуры выполняются на общей памяти, в то время как объекты выполняют свои операции с учетом данных одного сообщения и своего собственного состояния.
Понятие класса |
Объекты с одинаковыми свойствами, то есть с одинаковыми наборами переменных состояния и методов, образуют класс.
Каждый класс задается своим описанием на языке ООП, которое включает информацию, необходимую для создания объектов данного класса и для их существования. (Это информация о переменных состояния и операциях объекта).
Каждый класс может иметь подклассы - классы, обладающие всеми или частью его свойств, а так же собственными свойствами. Класс, не имеющий ни одного представителя (объекта) обычно называют абстрактным.
Совокупность классов и их подклассов образует иерархию классов.
А теперь, несколько советов из книги Бьёрна Страуструпа (создателя языка C++):
"... Когда вы программируете, вы создаете конкретное представление идей, связанных с решением некоторой задачи. Постарайтесь, чтобы структура программы максимально отражала эти идеи:
· если об "этом" можно мыслить как об отдельном понятии, пусть это будет классом;
· если об "этом" можно мыслить как об отдельной сущности, то пусть это будет объектом некоторого класса..."
Иначе говоря, объектно-ориентированный подход к программированию некоторой задачи, прежде всего, состоит в том, чтобы создать некоторый инструментарий, присущий решаемой задаче, а затем уже программировать в терминах этой задачи.
Все объектно-ориентированные языки, основаны на трех основополагающих концепциях, называемых инкапсуляцией, полиморфизмом и наследованием. Рассмотрим эти концепции.
Дата публикования: 2015-02-18; Прочитано: 2793 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!