Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Особенности и применимость объектно-ориентированного программирования
Объектно-ориентированный подход к программированию имеет 4 важных аспекта: 1) модульность; она позволяет: - разбить программу на модули и локализовать область действия подпро - изменять локальные подпрограммы, не изменяя других программных моду 2) абстракция данных; абстрактный тип данных определяется на основе неко 3) динамическая связка подпрограмм программы; это позволяет не переком 4) наследование; оно позволяет создавать классы объектов, на которые может Это позволяет создавать компактные программы: при определении нового объекта, незначительно отличающегося от объекта-предка, не надо заново описывать свойства, общие с объектом-родителем, достаточно определить только различия. ООП обладает рядом преимуществ при создании больших программ: 1) использование более естественных понятий и простота введения новых 2) некоторое сокращение размера программ за счет того, что повторяющиеся 3) возможность создания библиотек объектов; 4) сравнительно простая возможность внесения изменений в программу без 5) возможность использования подпрограмм с различными наборами формальных параметров, но имеющих одно и то же имя, применяя свойство 6) более четкая локализация свойств и методов объекта (с помощью свойства 7) возможность разделения доступа к различным объектам программы. Однако ООП имеет ряд недостатков и эффективно не всегда. ООП требует изучения большого количества встроенных подпрограмм объектов порождающих классов. Как правило, использование ООП приводит к уменьшению быстродействия программы, особенно когда применяются виртуальные методы. Неэффективно ООП применительно к небольшим программам. Преимущества ООП в полной мере проявляются только при разработке достаточно сложных программ. Поэтому ООП можно рекомендовать при создании больших программ или класса программ, например для создания интерактивных систем с помощью средств визуального программирования. Применение ООП не упрощает саму программу, а упрощает технологию ее создания. Попытки использовать ООП для программирования несложных алгоритмических действий, связанных, например, с вычислениями по готовым формулам, чаще всего выглядит искусственным нагромождением ненужных языковых конструкций. Их проще разрабатывать традиционными средствами Паскаля. А при разработке сложных диалоговых программ программист вынужден структурировать программу, т. е. разбить ее на ряд взаимосвязанных и взаимозависимых подпрограмм. Это фактически ведет к разработке собственной библиотеки подпрограмм; в этом случае целесообразноиспользовать средства ООП. Свойства объектов Инкапсуляция Определение объекта Основным понятием ООП и элементом программ является объект. Любая объектно-ориентированная программа состоит из двух частей: 1) декларативной части программы (описания объектов); 2) исполняемой части программы (основной программы и подпрограмм). Исполняемая часть объектно-ориентированной программы состоит из последовательности действий, выполняемых над данными типа объект. Каждое такое действие изменяет состояние объекта и представляет собой вызов подпрограммы, доступной объекту. Объединение декларативных (данных) и исполняемых (процедурных) элементов при описании объекта называется инкапсуляцией. Объект - это такая структура, компонентами которой являются данные и методы (процедуры и функции) для их обработки. Компоненты - данные -это поля объекта, а компоненты подпрограммы - это методы. По написанию объект напоминает тип-запись. Форма объявления объекта: TYPE Имя-объекта = OBJECT Поля-данных; Заголовки-методов; END; При описании объекта сначала определяются все данные объекта, а затем -заголовки методов их обработки - как опережающие описания подпрограмм. Далее - тексты всех методов, написанные так же, как подпрограммы в модулях. Методы всегда используют дальний тип вызова независимо от состояния директивы $F. Текст подпрограммы метода может быть в одном из программных файлов: в том же, где объявлен объект, или в другом, например в одном из модулей. При написании текста метода в заголовке подпрограммы перед ее именем обязательно надо указать имя типа объекта, которому принадлежит метод, т. е. имя метода должно быть составным в виде: имя-типа-объекта.имя-подпрограммы;. Конкретная переменная или константа объектного типа называется экземпляром - переменною или константою этого типа. Вызов метода для обработки данных экземпляра состоит из составного имени в виде: имя-экземпляра-объектного-типа . имя-метода; Пример программы с объявлением объекта и его использованием приведен в листинге 1. Листинг 1. Объявление и использование экземпляров объектного типа. Program Ex1; Type ObName = object { - начало объявления объекта } Fl1 : integer; Fl2 : real; Procedure MetName( Param1 : integer; Param2 : real) ; end; { - конец объявления объекта } Procedure ObName.MetName; Begin Fll := Param1; F12 := Param2; End; { Объявление и инициализация экземпляра - типизированной константы объектного типа: } Const ObCon : ObName = ( Fl1 : 5; Fl2 : 2.5 ); { Объявление экземпляра - переменной объектного типа :} Var ObVar : ObName; Begin { Вывод значения объектной константы с помощью составного имени: } Writeln ('ObCon.Fl1= ', ObCon.Fll); { Присоединение к экземпляру объектной константы: } With ObCon do Writeln ('Fl1 = ',Fl1,'F12 = ',F12:10); ObVar.MetName ( 7, 3.8 ); { - вызов метода } { Вывод значения объектной переменной с помощью составного имени: } Writeln ( 'ObVar.Fl1 = ', ObVar.Fll); { Присоединение к экземпляру объектной переменной: } With ObVar do Writeln ('Fl1 = ',Fl1,'F12= ',F12:10); End. В программе объявлены: ObName - объектный тип . Он содержит 2 элемента (поля): Fl1 - типа integer; Fl2 - типа real. В состав объекта входит MetName - метод инициализации значений экземпляра объекта данного типа. |
||
Последнее изменение этой страницы: 2018-05-10; просмотров: 197. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |