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

Автор работы: Пользователь скрыл имя, 20 Мая 2013 в 23:22, реферат

Краткое описание

Метод – это процедура, которая реализует возможные с объектом действия. Метод рассматривается как программный код, связанный с определенным объектом, который осуществляет преобразование свойств, изменяет поведение объекта.
Событие – это средство взаимодействия объектов друг с другом. События могут генерироваться системой – внутренние события или пользователем – внешние события. Например, щелчок мышью или нажатие клавиши на клавиатуре – внешние события; загрузка или выгрузка формы – внутренние события. С каждым событием связана процедура, в которую может быть помещен текст программы. Эта процедура выполняется только при наступлении данного события.

Прикрепленные файлы: 1 файл

ЛЕКЦИИ ООП ИТО-09 ИСТ-09_2.doc

— 135.00 Кб (Скачать документ)

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

 

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

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

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

В этой интерпретации  каждый объект – это экземпляр определенного класса.

Класс характеризуется  такими основополагающими понятиями  объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм.

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

Наследование – способность создавать классы, зависящие от других классов. Объект дочернего класса обладает всеми свойствами, методами и событиями родительского класса.

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

 

Свойство – характеристика объекта, его параметр.

Метод  – это процедура, которая реализует возможные с объектом действия. Метод рассматривается как программный код, связанный с определенным объектом, который осуществляет преобразование свойств, изменяет поведение объекта.

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

Событие (Event) – это то, что происходит во время работы программы. В Delphi каждому событию присвоено имя. Например, щелчок кнопкой мыши – это событие OnClick, двойной щелчок мышью событие OnDblClick, а также:

OnMouseDown (при нажатии  кнопки мыши), 

OnMouseUp (при отпускании кнопки  мыши),

OnMouseMove (при перемещении мыши), 

OnKeyPress (при нажатии клавиши клавиатуры),

OnKeyDown (при нажатии клавиши клавиатуры),

OnKeyUp (при отпускании клавиши клавиатуры),

OnCreate (при создании объекта – формы, элемента управления; процедура обработки этого события обычно используется для инициализации переменных, выполнения подготовительных действий),    

OnPaint (при появлении окна на  экране в начале работы программы,  после появления части окна, которая,  например, была закрыта другим  окном, и в других случаях),

OnEnter (при получении элементом  управления фокуса),

OnExit (при потере элементом управления  фокуса).

 

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

Главный модуль представляет собой файл с расширением dpr.

Помимо главного модуля, каждая программа  включает в себя еще как минимум  один модуль формы, который содержит описание стартовой формы приложения и поддерживающих ее работу процедур. В Delphi каждой форме соответствует свой модуль.

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

Модуль состоит  из следующих разделов:

  • интерфейса;
  • реализации;
  • инициализации.

Раздел интерфейса начинается словом interface. В этом разделе перечислены (после слова uses) библиотечные модули, используемые данным модулем. Также здесь находится сформированное Delphi описание формы, которое следует за словом type.

Раздел реализации открывается словом implementation и содержит объявления локальных переменных, процедур и функций, поддерживающих работу формы.

Раздел инициализации позволяет выполнить инициализацию переменных модуля.

 

Таким образом, проект – это набор файлов, используя которые компилятор создает исполняемый файл программы (ЕХЕ-файл). В простейшем случае проект состоит из файла описания проекта (DOF-файл), файла главного модуля (DPR-файл), файла ресурсов (RES-файл), файла описания формы (DFM-файл), файла модуля формы, в котором находится основной код приложения, в том числе функции обработки событий на компонентах формы (PAS-файл), файла конфигурации (CFG-файл).

Файл ресурсов содержит ресурсы приложения: пиктограммы, курсоры, битовые образы и др. Файл ресурсов не является текстовым файлом, поэтому просмотреть его с помощью редактора текста нельзя. Для работы с файлами ресурсов используют специальные программы, например, Resource Workshop. Можно также применять входящую в состав Delphi утилиту Image Editor, доступ к которой можно получить выбором из меню Tools команды Image Editor.

Файл описания формы генерируется средой Delphi на основе внешнего вида формы.

 

 

Классификация языков программирования: технологии и стили программирования. 

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

Очевидно, что  при программировании в машинных кодах надо хорошо знать внутреннюю структуру ЭВМ, принцип работы каждого блока, а процесс программирования требует много времени, труда, повышенного внимания.

Средством решения проблемы стали  различные символические языки  и соответствующие им трансляторы  (системы программирования).

В мире насчитывается несколько  сотен символических языков программирования (ЯП) различных структур и возможностей, которые могут быть классифицированы по различным признакам.

По наиболее распространенной классификации  все ЯП, в соответствии с тем, в каких терминах необходимо описать задачу, делят на языки низкого и высокого уровня. Если ЯП близок к естественному языку, то он называется языком высокого уровня, если ближе к машинным командам, – языком низкого уровня.

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

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

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

Программу, написанную на языке программирования высокого уровня, ЭВМ не понимает, поскольку  ей доступен только машинный язык. Поэтому  для перевода программы с ЯП на язык машинных кодов используют специальные программы – трансляторы.

Трансляторы бывают двух типов: интерпретаторы и компиляторы.

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

Компилятор – программа, которая переводит весь текст программы на машинный язык и сохраняет его в исполняемом exe-файле. Затем этот записанный на машинном языке файл можно многократно запускать на исполнение.

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

 

Языки программирования

 Процедурные

 Функциональные

  Логические

  Объектно-ориентированные


 

Процедурные ЯП (Basic, Pascal, C и др.) предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения.

Среди процедурных  языков выделяют в свою очередь структурные и операционные языки. В структурных языках (Pascal, C, Ada, PL/1) одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках (Fortran, Basic) для этого используются несколько операций.

К непроцедурному программированию относятся функциональные и логические языки.

Программа на функциональном языке представляет  собой совокупность описаний функций и выражения, которые необходимо вычислить. Способ решения задачи описывается при помощи зависимости функций друг от друга, но без указания последовательности шагов. Оператора присваивания и циклов в классических функциональных языках нет. Примером функционального языка является язык LISP (List Processing -обработка списков). Рассматривается специалистами как основной язык программирования систем искусственного интеллекта.

В логических языках программа вообще не описывает действий. Она задает данные и соотношения  между ними. После этого системе  можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком. Логические программы отличаются принципиально низким быстродействием, так как вычисления осуществляются методом проб и ошибок (посредством поиска с возвратами). Классическим языком логического программирования считается Prolog (PROgramming in LOGic - программирование в терминах логики). Программа на Prolog содержит набор предикатов–утверждений, которые образуют проблемно–ориентированную базу данных и правила, имеющие вид условий.

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

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

Из языков объектного программирования, популярных среди профессионалов, следует назвать прежде всего C++, для более широкого круга программистов предпочтительны среды типа Delphi и Visual Basic.

 

Языки описания сценариев предполагают стиль программирования, весьма отличный от характерного для языков системного уровня. Они предназначаются не для написания приложения с нуля, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Развитие и рост популярности Internet также способствовали распространению языков описания сценариев. Так, для написания сценариев широко употребляется язык Perl, а среди разработчиков Web-страниц популярен JavaScript..

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

 

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

Понятие парадигмы  программирования. Мультипарадигменные  языки.

 

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

Парадигма задается использованием определенных сущностей, например:

  • состояний программы и команд, изменяющих их;
  • математических функций без состояний;
  • объектов и взаимодействий между ними;
  • алгоритмов и контейнеров, оперирующих с типами данных, переданными как параметр;
  • значений и операций, преобразующих значения.

Информация о работе Основные понятия и принципы объектно-ориентированного программирования