Главная » Просмотр файлов » Шупрута В.В. - Delphi 2005 - Учимся программировать

Шупрута В.В. - Delphi 2005 - Учимся программировать (1080891), страница 25

Файл №1080891 Шупрута В.В. - Delphi 2005 - Учимся программировать (Шупрута В.В. - Delphi 2005 - Учимся программировать) 25 страницаШупрута В.В. - Delphi 2005 - Учимся программировать (1080891) страница 252018-01-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 25)

Процедурный подход предполагает,что основой программы является алгоритм, то есть некоторая процедура обработки данных. Вспомните начало второй главы - мы начинали создавать программы, используя именно эти принципы.•ГЛАВА 4 Т Объектно-ориентированное программированиеОбъектно-ориентированное программирование -методика разработки программ,в основе которой лежит понятие «объект». Сразу скажу, что это никоим образом не противоречит тому, что мы делали в самом начале, - на самом деле мыуже тогда при написании программ использовали ООП, просто это было описано в форме, более удобной и доступной для понимания.Итак, в основе ООП лежит понятие «объект». Объект - это некоторая структура, соответствующая объекту реального мира, его поведению.

Задача, решаемая с использованием методики ООП, описывается в терминах объектов и операций над ними. Программа при таком подходе представляет собой наборобъектов, а также их взаимосвязей. Любой объект принадлежит к какому-либоклассу.Более подробно на понятии «класс» мы остановимся ниже.Определяем понятие «класс»Если вспомнить материал прошлой главы, где описываются различныетипы данных, то можно сказать, что некоторым аналогом классов являются записи. Записи позволяли описать некоторые объекты реального мира(например, сотрудника компании, в структуре записи которого храниласьинформации об имени, возрасте и заработной плате). Однако записи позволяли нам описывать только данные об объекте, но не учитывать их поведение.Язык Delphi, поддерживая концепцию объектно-ориентированного программирования, дает возможность определять классы.Класс (Class) - это сложная структура, включающая описания не только данных, но и процедур и функций, которые могут быть выполнены над представителем класса (объектом).Ниже в листинге 4.1 приведен пример объявления класса (как и другие элементы программы - константы, переменные, типы, - классы необходимообъявлять).Л и с т и н г 4.1 т Пример объявления класса// Фрагмент кода, демонстрирующий созданиеTPersonal = classprivatefname:string[30]класса.// Это свойство класса - имя//сотрудника.Что представляет собой объектfage:byte;publicprocedure showinfo;•/ / Это свойство класса - возраст//сотрудника./ / Это метод класса - процедура,// обеспечивающая показ информации// о сотруднике.end;Данные класса, описывающие характеристики объекта, называются полями(Field) или атрибутами (Attribute) , а процедуры и функции, описывающиеповедение объекта, - методами (Method).В приведенном примере объявлен класс T P e r s o n a l .

ИдентификаторT P e r s o n a l - это имя класса, fname и fage - имена полей, showinfo - имяметода.Описание класса помещают в программе в раздел описания типов (type).Что представляет собой объектПосле того как класс объявлен, в программе можно создавать (объявлять)объекты (Object) - экземпляры класса. Объекты как представители классаобъявляются в программе в разделе описания переменных (var):varboss:TPersonal;workersrarray [1..100] of TPersonal;В языке Delphi объект - это динамическая структура. Такая структурасодержит не сами данные, а ссылку на данные объекта. Поэтому программистдолжен позаботиться о выделении памяти для этих данных.Выделение памяти осуществляется при помощи специального методакласса - конструктора, которому обычно присваивают имя C r e a t e (Создать).Для того чтобы подчеркнуть особую роль и поведение конструктора, вописании класса вместо слова p r o c e d u r e используется слово c o n s t r u c t o r .Приведенный ниже в листинге 4.2 фрагмент кода объявляет класс сиспользованием конструктора.Л и с т и н г 4.2 т Объявление класса, в состав которого введен конструктор// Фрагмент кода, демонстрирующий создание класса с конструктором.TPersonal = classprivateГЛАВА 4 • Объектно-ориентированное программированиеfname:string[30];/ / Это свойство класса - имя//сотрудника./ / Это свойство класса - возраст//сотрудника.fage:byte;publicconstructor Create;procedure showinfo;/ / Конструктор - процедура создания// нового объекта (экземпляра класса)./ / Это метод класса - процедура,// обеспечивающая показ информации// о сотруднике.end;Выделение памяти для данных объекта происходит путем присваиваниязначения результата применения метода-конструктора к типу (классу) объекта.Например, после выполнения инструкцииboss := TPersona'l.Create;выделяется необходимая память для данных объекта boss.Помимо выделения памяти, конструктор, как правило, решает задачуприсваивания полям объекта начальных значений, то есть осуществляетинициализацию объекта.

Ниже приведен пример реализации конструктора дляобъекта TPersonal:constructor TPerson.Create;begin•.fname := 'Новый сотрудник';fage := 0;. •end ;После объявления и инициализации объект можно использовать, напримерустановить значение полей объекта. Доступ к полю объекта осуществляетсяуказанием имени объекта и имени поля, которые отделяются друг от другаточкой.Если в программе какой-либо объект больше не используется, то можноосвободить память, занимаемую полями данного объекта. Для выполненияэтого действия используют метод Free. Например, для того чтобы освободитьпамять, занимаемую полями объекта boss, достаточно записать:boss.free;На самом деле память освобождается с помощью другого специальногометода, называемого деструктором.

При его описании используется специальноеслово d e s t r u c t o r . Метод f r e e всего лишь вызывает деструктор.Что такое методЧто такое методМетоды (Method) класса (процедуры и функции, объявление которых включено в описание класса) выполняют некоторые действия над объектами класса(то есть характеризуют поведение объектов). Для того чтобы метод был выполнен, необходимо указать имена объекта и метода, отделив одно имя отдругого точкой. Например, инструкцияboss.showinfo;вызывает применение метода showinfo к объекту b o s s .

Фактическиинструкция применения метода к объекту - это специфический способ записиинструкции вызова процедуры.Методы класса определяются в программе точно так же, как и обычныепроцедуры и функции, за исключением того, что имя процедуры или функции,являющейся методом, состоит из двух частей: имени класса, к которомупринадлежит метод, и имени метода. Имя класса от имени метода отделяетсяточкой.Ниже в листинге 4.3 приведен пример определения метода showinfo классаTPersonal.ЛИСТИНГ 4.3. т Метод showinfo класса TPersonalprocedure TPersonal.showinfo;begin// ВЫВОД на экран данных о сотруднике.messagebox.Show(fname+' '+fage.toString);end;Как видно из листинга 4.3, в инструкциях метода доступ к полям объектаосуществляется без указания имени объекта.Далее приведен пример программы (листинг 4.4), в которой объявляетсякласс T P e r s o n a l , над объектом которого (boss) выполняются различныедействия.Листинг 4.4-т Пример программы, демонстрирующий создание и использование классаu n i t WinForm;interfaceusesSystem.Drawing, System.Collections, System.ComponentModel,System.Windows.Forms, System.Data;ГЛАВА 4 • Объектно-ориентированное программированиеtypeTWinForm = class(System.Windows.Forms.Form){$REGION 'Designer Managed Code 1 }strict privateComponents: System.ComponentModel.Container;Butstonl: System.Windows.Forms.Button;procedure InitializeComponent;procedure Buttonl_Click(sender: System.Object;e: System.EventArgs);{$ENDREGION}strict protectedprocedure Dispose(Disposing: Boolean); override;private{ Private Declarations }publicconstructor Create;end;// Объявление класса.TPersonal = classprivatefname:string[30];// Это поле класса - имя сотрудника.fage:byte;// Это поле класса - возраст// сотрудника.publicconstructor Create;// Конструктор - создание нового// объекта// (экземпляра класса).procedure showinfo;// Это метод класса - показ// информации о// сотруднике.end;[assembly: RuntimeRequiredAttribute(TypeOf(TWinForm))]implementation{$AUTOBOX ON}{$REGION 'Windows Form Designer generated code 1 }procedure TWinForm.Dispose(Disposing: Boolean);beginif Disposing thenbeginif Components <> nil thenComponents.Dispose();end;Что такое методinherited Dispose(Disposing);end;// Конструктор для формы.constructor TWinForm.Create;begininherited Create;InitializeComponent;end;// Процедура' обработки события Click на кнопке Buttonl.procedure TWinForm.Buttonl_Click(sender: System.Object;e: System.EventArgs);varworker:TPersonal;begin// Создание нового объекта.worker:=TPersonal.Create;// Применение метода к объекту - вывод информации о сотруднике.worker.showinfо; // На экране сообщение 'Новый сотрудник О'.// Изменяем значение полей объекта.worker.fname:='Шупрута Владимир';worker.fage:=25;// Применение метода к объекту - вывод информации о сотруднике.worker.showinfо; // На экране сообщение 'Шупрута Владимир 25'.// Уничтожаем объект.worker.free;end;// Конструктор для класса TPersonal.// (Создается новый объект с именем 'Новый сотрудник'// и возрастом 0)constructor TPersonal.Create;begininherited Create;fname:='Новый сотрудник';fage:=0;end;// Метод класса TPersonal - процедура показа данных о сотруднике.procedure TPersonal.showinfо;beginmessagebox.Show(fname+' '+fage.toString);end;end.ywfГЛАВА 4 • Объектно-ориентированное программированиеОсновные принципы объектноориентированного программированияМы немного познакомились с классами и объектами.

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

В объектно-ориентированном программировании методы и данные могут быть объединены вместе; в этом случаеговорят, что создается так называемый черный ящик.Внутри объекта методы и данные могут быть закрытыми. Закрытые методы илиданные доступны только для других частей этого объекта. Таким образом, закрытые коды и данные недоступны для тех частей программы, которые существуют внеобъекта.

Характеристики

Тип файла
PDF-файл
Размер
37,94 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6294
Авторов
на СтудИзбе
314
Средний доход
с одного платного файла
Обучение Подробнее