В Камаев - Технологии программирования

Тут можно читать онлайн В Камаев - Технологии программирования - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая околокомпьтерная литература, издательство Издательство «Высшая школа», год 2006. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

В Камаев - Технологии программирования краткое содержание

Технологии программирования - описание и краткое содержание, автор В Камаев, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
В книге изложены технологии структурного программирования, объектно-ориентированного проектирования, визуального программирования, технология, основанная на абстракции данных Дейкстеры. Рассмотрено использование средств автоматизации проведения программных разработок.
Второе издание (1-е — 2005 г.) дополнено главами по структуре данных и основам инженерии создания программ.
Для студентов вузов, обучающихся по направлению «Информатика».

Технологии программирования - читать онлайн бесплатно полную версию (весь текст целиком)

Технологии программирования - читать книгу онлайн бесплатно, автор В Камаев
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

public

{ Public declarations }

end;

type

TSomeType = String;

type

TAnObject = class(TObject)

private

FValue: TSomeType;

function GetAProperty: TSomeType;

procedureSetAProperty (ANewValue: TSomeType);

public

propertyAProperty: TSomeType

readGetAProperty

writeSetAProperty;

end;

var

Form1: TForm1;

AnObject: TAnObject;

implementation

{$R *.DFM}

procedureTForm1.ButtonlClick(Sender: TObject);

begin

AnObject:= TAnObject.Create;

AnObject.AProperty:= 'Привет!';

Label1.Caption:= AnObject.AProperty;

end;

procedureTAnObject.SetAProperty(

ANewValue: TSomeType);

begin

FValue:= ANewValue; {Засылка значения в поле}

end;

functionTAnObject.GetAProperty: TSomeType;

begin

GetAProperty:= FValue; {Чтение значения из поля}

end;

end.

Сохраним проект (Save Project As). При сохранении проекта укажем новое имя модуля — testir и новое имя проекта — PrTestir. Рассмотрим текст получившегося файла проекта (пункты меню View и далее Project Source):

programPrTestir;

uses

Forms,

testir in 'testir.pas' {Form1};

{$R *.RES}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

Данный файл содержит текст основной программы PrTestir. К основной программе подключаются модуль Forms (для работы с формой) и исходный код модуля testir. Три исполняемых оператора основной программы последовательно организуют новый вычислительный процесс выполнения написанной программы PrTestir, создадут объект формы Form1, осуществят запуск программы на выполнение (Run).

В набранном примере текст модуля содержит сгенерированный текст объявления объектного типа Tform1. В типе содержатся указания на агрегацию в данном классе объекта кнопки Button1: Tbutton и объекта Label1: Tlabel. Благодаря агрегации экземпляры объектов кнопки и надписи будут создаваться одновременно с созданием экземпляра объекта формы, в результате чего как бы получится совместно работающий с кнопкой и надписью объект формы. В типе Tform1 Delphi по двойному щелчку мыши по кнопке сгенерировала прототип вызова метода:

procedureButton1Click(Sender: TObject).

Также Delphi автоматически сгенерировала переменную объектного типа

var

Form1: TForm1;

и в секции реализации вставила текст "пустой" процедуры Button1Click отработки действий по нажатию кнопки Button1.

Рассмотрим элементы, добавленные нами в текст модуля по реализации инкапсуляции. Итак, нами был набран текст описания класса TAnObject и переменная данного объектного типа AnObject:

type

TAnObject = class(TObject) private

FValue: TSomeType;

functionGetAProperty: TSomeType;

procedureSetAProperty (ANewValue: TSomeType);

public

propertyAProperty: TSomeType

readGetAProperty

writeSetAProperty;

end;

var

AnObject: TanObject.

Обычно свойство (property)определяется тремя своими элементами: полем и двумя методами, которые осуществляют его запись/чтение:

private

FValue: TSomeType;

functionGetAProperty: TSomeType;

procedureSetAProperty (ANewValue: TSomeType);

public

property AProperty: TSomeType

readGetAProperty

writeSetAProperty;

procedureTAnObject.SetAProperty(ANewValue: TSomeType);

begin

FValue:= ANewValue; {Засылка значения в поле}

end;

functionTAnObject.GetAProperty: TSomeType;

begin

GetAProperty:= FValue; {Чтение значения из поля}

end;

В данном примере свойство Aproperty выполняет такую же функцию, какую в предшествующем примере выполняло поле MyField. Доступ к значению свойства Aproperty осуществляется через вызовы методов GetAProperty и SetAProperty. Однако в обращении к этим методам в явном виде нет необходимости (в рассматриваемом примере они даже защищены — protected), достаточно написать:

AnObject.AProperty:=…;

…:= AnObject.Aproperty;

и компилятор оттранслирует эти операторы в вызовы методов.

Рассмотрим три оператора, вписанные в текст "пустой" процедуры (метод) Button1Click:

AnObject:= TAnObject.Create;

AnObject.AProperty:= 'Привет!';

Label1.Caption:= AnObject.AProperty;

Первый оператор создает экземпляр объекта. Второй оператор в недоступное по интерфейсу (protected) поле Fvalue засылает при помощи недоступной по интерфейсу (protected) процедуры AnObject.SetAProperty текст "Привет!". Третий оператор при помощи недоступной по интерфейсу (protected) процедуры АпОЬject.GetAProperty считывает данные из недоступного по интерфейсу поля Fvalue и засылает их в свойство Caption объекта надписи Label1.

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

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

Рассмотрим следующую конструкцию:

type

TPropObject = class(TObject)

FValue: TSomeType;

procedureDoSomething;

procedureCorrect(AValue: Integer);

procedureSetValue(NewValue: Integer);

procedureAValue: Integer readFvalue

writeSetValue;

end;

procedureTPropObject.SetValue(NewValue: Integer);

begin

if(NewValue <> FValue) andCorrect (NewValue)

then

FValue:= NewValue; {Засылка значения в поле}

DoSomething;

end;

В этом примере чтение значения свойства AValue означает просто чтение поля FValue. Зато при присвоении ему значения внутри метода SetValue вызывается сразу два метода.

Если свойство должно только читаться или только записываться, то в его описании может присутствовать только соответствующий метод:

type

TAnObject = class(TObject)

propertyAProperty: TSomeType readGetValue;

end;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


В Камаев читать все книги автора по порядку

В Камаев - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Технологии программирования отзывы


Отзывы читателей о книге Технологии программирования, автор: В Камаев. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x