2 Объекты
Базовым в объектно-ориентированном программировании является понятие объекта. Объект имеет определённые свойства. Состояние объекта задаётся значениями его признаков. Объект «знает», как решить определённые задачи, то есть располагает методами решения. Программа, написанная с использованием ООП, состоит из объектов, которые могут взаимодействовать между собой.
Ранее отмечалось, что программная реализация объекта представляет собой объединение данных и процедур их обработки. В Турбо Паскале имеется тип object, который можно считать обобщением структурного типа record. Переменные объектного типа называются экземплярами объекта. Здесь требуется уточнение – экземпляр лишь формально можно назвать переменной. Его описание даётся в предложении описания переменных, но в действительности экземпляр – нечто большее, чем обычная переменная.
В отличии от типа «запись», объектный тип содержит не только поля, описывающие данные, но также процедуры и функции, описания которых содержатся в описании объекта. Эти процедуры и функции называются методами. В описании объекта фактически содержатся лишь шаблоны обращений к методам, которые необходимы компилятору для проверки соответствия количества параметров и их типов при обращении к методам. Вот пример описания объекта:
type
Location = object
X, Y: Integer;
procedure Init (InitX, Inity: Integer);
function GetX: Integer;
function GetY: Integer;
end;
Здесь описывается объект, который может использоваться в дальнейшем, скажем, в графическом режиме и который предназначен для определения положения на экране произвольного графического элемента. Объект описывается с помощью зарезервированных слов object…end, между которыми находятся описания полей и методов. В нашем примере объект содержит два поля для хранения значений графических координат, а также описания процедуры и двух функций – это методы данного объекта. Процедура предназначена для задания первоначального положения объекта, а функции – для считывания его координат.
Зарезервированное слово private позволяет ограничить доступ к полям объекта. В следующем примере доступ к переменным X и Y возможен только через методы объектного типа Location:
type
Location = object
procedure Init (InitX, Inity: Integer);
function GetX: Integer;
function GetY: Integer;
private
X, Y: integer;
end;
В секции private могут находится и методы объекта.
Полное описание методов, то есть описание их реализации, должно находится после описания объекта. Имена методов составные и складываются из имени объекта и имени метода, разделённых точкой:
procedure Location. Init (InitX, Inity: Integer);
begin
X : = InitX;
Y : = InitY;
end;
fuction Location. GetX: Integer;
begin
GetX : = X;
end;
fuction Location. GetY: Integer;
begin
GetY : = Y;
end;
После того как объект описан, в программе можно использовать его экземпляры, то есть переменные указанного объектного типа:
var
GrMarket : Location;
2.1 Основные принципы ООП
Элементы объектно-ориентированного программирования появились в начале 70-х в языке моделирования Симула, затем получили своё развитие, и в настоящее время ООП принадлежит к числу ведущих технологий программирования. В Турбо Паскале поддержка этой технологии появилась, начиная с версии 5.5 (1989 год).
Основная цель ООП, как и большинства других подходов к программированию, - повышение эффективности разработки программ. Идеи ООП оказались плодотворными и нашли применение не только в языках программирования, но и в других областях Computer Science, например, в области разработки операционных систем.
Появление объектно-ориентированного программирования было связанно с тем наблюдением, что компьютерные программы представляют собой описание действий, выполняемых над различными объектами. В роли последних могут выступать, например, графические объекты, записи в базах данных или совокупности числовых значений. В традиционных методах программирования изменение данных или правил и методов их обработки часто приводило к необходимости значительного изменения программ. Всякое существенное изменение программы – это большая неприятность для программиста, так как при этом увеличивается вероятность ошибок, вследствие чего возрастает время, необходимое для «доводки» программы. Использование ООП позволяет выйти из такой ситуации с минимальными потерями, сводя необходимую модификацию программы к её расширению и дополнению. Сразу замечу, что ООП не является панацеей от всех программистских бед, но его ценность как передовой технологии программирования несомненна. Изучение идей и методов объектно-ориентированного программирования – не очень простая задача, однако освоение ООП может существенно упростить разработку и отладку сложных программ.
Мы уже привыкли использовать в своих программах процедуры и функции для программирования тех сложных действий по обработке данных, которые приходится выполнять многократно. Использование подпрограмм в своё время было важным шагом на пути к увеличению эффективности программирования. Подпрограмма может иметь формальные параметры, которые при обращении к ней заменяются фактическими параметрами. В этом случае есть опасность вызова подпрограммы с неправильными данными, что может привести к сбою программы и её аварийному завершению при выполнении. Поэтому естественным обобщением традиционного подхода к программированию является объединение данных и подпрограмм (процедур и функций), предназначенных для их обработки.
... в её работоспособности и использовать в других программах. Примерами таких процедур являются процедуры для работы со строками, встроенные в Турбо-Паскаль. В нашем примере можно переписать программу и по-другому. Максимум из трёх чисел определяется по ним однозначно, или, говоря математическим языком, является функцией этих трёх чисел. Понятие функции есть также и в Паскале. Рассмотрим такую ...
... выбрать режим Quit <Alt>-<X>, после чего нажать либо <Enter>, либо комбинацию <Alt>-<X>. ФУНКЦИОНАЛЬНЫЕ КЛАВИШИ Функциональные клавиши используются для управления средой Турбо Паскаля. Они обозначаются F1, F2,..., F12 и располагаются в самом верхнем ряду клавиатуры. С каждой из этих клавиш связывается некоторая команда меню. Действие почти всех функциональных ...
... программы необходимо располагать ее спецификацию – комментарий в фигурных скобках, содержащий назначение программы, данные о программисте, дату создания программы. Язык программирования Паскаль является языком структурного программирования. В нем есть все необходимые управляющие конструкции для структурного построения программы. Наглядность такому построению придает структуризация внешнего вида ...
... . Объясните, для чего служат разрешения и привилегии в Windows NT. Зав. кафедрой -------------------------------------------------- Экзаменационный билет по предмету СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Билет № 22 Перечислите возможности и инструменты системы программирования Microsoft Developer Studio. Укажите для чего предназначается буфер в системах ввода-вывода, ...
0 комментариев