Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Инкапсуляция, наследование и полиморфизм





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

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

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

Полиморфизм. Этот термин означает возможность использования одних и тех же методов разными классами объектов. Например, действие, обозначаемое как «+», может быть применено и к числам, и к строкам символов, и к компонентам, определяющим вид Окна сообщения (Msgbox). Но результат действия этих методов при этом может быть разным.

Что такое инкапсуляция?

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

Посредством инкапсуляции вы можете скрыть реальное наполнение ваших свойств и методов в классах. Конечной целью выступает способность дать интерфейсу пользователя набор операторов, которые он может выполнить, оставив детали их наполнения за кулисами. Применяя инкапсуляцию, вы можете спрятать детали реализации и изменять текст программы, не затрагивая и не изменяя оболочки всего приложения. В листинге 3.1 три поля объявлены как частные (private). Когда объект класса Contact создается в клиентском приложении, частные поля остаются недоступными. Свойства класса остаются доступными, так что клиент может оказывать влияние на частные поля посредством общедоступных свойств. Существуют также три свойства, доступные только для чтения, которые возвращают пользователю различные аспекты данных (NameProper, NsmeLo и NameHi). Спрятав реальные данные в частных полях, вы инкапсулируете только трактовку этих данных. Пользователя не беспокоит, что происходит с данными и каким образом они хранятся. Он только знает, что может получить доступ к значениям полей FirstName, LastName и Email.

Пример инкапсуляции

Public Class Contact

Private _FirstName As String

Private _LastName As String

Private _Email As String

Public Property FirstName()

Get

Return _FirstName

End Get

Set(ByVal Value)

_FirstName = Value

End Set

End Property

Public Property Email()

Get,

Return _Email

End Get

Set(ByVal Value)

_Email = Value

End Set

End Property

Public Property LastName()

Get

Return _LastName

End Get

Set(ByVal Value)

_LastName = Value

End Set

End Property

Public Readonly Property NameHi()

Get

Return _FirstName.ToUpper & " " & _LastName.ToUpper

End Get

End Property

Public Readonly Property NameLo()

Get

Return _FirstName.ToLower & " " & _LastName.ToLower

End Get

End Property

Public Readonly Property NameProper()

Get

Return StrConv(_FirstName, VbStrConv.ProperCase) & " " _

& StrConv(_LastName, VbStrConv.ProperCase)

End Get End Property

End Class

Возможность определения новых объектов на основе уже существующего объекта более высокого уровня путем передачи им значений некоторых свойств этого объекта. Понятие наследования. Пример наследования в среде проектирования и программирования Windows-приложений Visual Basic.

Наследование — это возможность создавать новые классы, основанные на существующих. Новый класс наследует все свойства, методы и события базового и может быть дополнен новыми свойствами и методами.

Целью наследования является создание вокруг класса оболочки, которую можно использовать и модифицировать. Когда определены члены класса, они программируются определенным образом для того, чтобы позволить наследование. Два термина применяются при обращении к классам в процедуре наследования: управляемый (derived) и базовый (base). Базовый класс является исходным, или классом оболочки. Управляемый класс — это класс, основанный из базового класса. Ключевое слово Inherits, помещенное в описание класса,управляет (наследует) функциональным наполнением этого класса.. Сотрудники и заказчики имеют одну и ту же информацию, необходимую для контактов,но все остальные детали специфичны для каждого типа (например, размер зарплаты или номер карточки социального страхования для сотрудника, и вид деятельности для заказчика). Предположим Базовый класс Contact был отлажен. Теперь нужно унаследовать его функции в другие классы, которые и приспосабливать к конкретному типу контакта. с помощью ключевого слова Inherits.Классы заказчиков и сотрудников (пример):

Public Class Customer

Inherits Contact

Private „Category As String

Public Property Category() As String

Get

Return „Category

End Get

Set(ByVal Value As String)

„Category = Value

End Set

End Property

End Class

Public Class Employee

Inherits Contact

Private _Salary As Double

Private _SSN As String

Public Property Salary() As Double

Get

Return _Salary

End Get

Set(ByVal Value As Double)

„Salary = Value

End Set

End Property

Public Property SSNO As String

Get

Return _SSN

End Get

Set(ByVal Value As String)

_SSN = Value

End Set

End Property

End Class

Возможность использования одних и тех же методов разными классами объектов. Понятие полиморфизма. Пример полиморфизма в среде проектирования и программирования Windows-приложений Visual Basic.

Полиморфизм. Этот термин означает возможность использования одних и тех же методов разными классами объектов. Например, действие, обозначаемое как «+», может быть применено и к числам, и к строкам символов, и к компонентам, определяющим вид Окна сообщения (Msgbox). Но результат действия этих методов при этом может быть разным.

В VB это известно как полиморфизм наследования (Inheritance-based polymorphism).

Используя полиморфизм, каждый класс может иметь свой метод Save, а компилятор уже определит, какой из них применять в зависимости от типа объекта.Вы также можете захотеть использовать различные программы для свойства LastName или Email, например в случае, если все сотрудники имеют электронный адрес, заканчивающийсяна Omsn.com. Вместо того чтобы переписывать программу этого свойства в классеContact, вы можете изменить содержание свойства Email в самом классе Employee.Мы добавляем метод Save к базовому классу Contact. Мы также добавляем одноименный метод в классы Employee и Customer. В классе Contact этот метод описывается как Overridable. В управляемых классах Employee и Customer этот метод описывается как Overrides. Этим гарантируется, что какой бы ни был создан объект— Contact, Employee или Customer, •— когда вызовется метод Save, выполнится именно требуемая программа. Замещая свойство Email в классе Employee,

(прога на 2 листа)

Public Class Contact

Private _FirstName As String

Private _LastName As String

Private _Email As String

Public Property FirstNameO

Get

Return _FirstName

End Get

SetfByVal Value)

_FirstName = Value

End Set

End Property

Public Property LastNameO

Get

Return _LastName

End Get

Set(ByVal Value)

_LastName = Value

End Set

End Property

Public Overridable Property Email()

Get

Return _Email

End Get

Set(ByVal Value)

_Email = Value

End Set

End Property

Public Readonly Property NameHi()

Get

Return _FirstName.ToUpper & " " & _LastName.ToUpper

End Get

End Property

Public Readonly Property NameLo()

Get

Return _FirstName.ToLower & " " & _LastName.ToLower

End Get

End Property

Public Readonly Property NameProper()

Get

Return StrConv(_FirstName, VbStrConv.ProperCase) & " " _

& StrConv(_LastName, VbStrConv.ProperCase)

End Get

End Property

Public Overridable Function Save() As String

Return "Contact Saved"

End Function

End Class

Public Class Customer

Inherits Contact

Private _Category As String

Public Property Category() As String

Get

Return _Category

End Get

Set(ByVal Value As String)

„Category = Value

End Set

End Property

Public Overrides Function Save() As String

Return "Customer Saved"

End Function

.

End Class

Public Class Employee

Inherits Contact

Private _Salary As Double

Private _SSN As String

Private _Eraail As String

Public Property Salary)) As Double

Get

Return _Salary

End Get

Set(ByVal Value As Double)

_Salary = Value

End Set

End Property

Public Property SSN() As String

Get

Return _SSN

End Get

Set(ByVal Value As String)

_SSN = Value

End Set

End Property

Public Overrides Property Email()

Get

Return _Email

End Get

Set(ByVal Value)

1 Check the email address

' if it is incorrect, throw an exception

If Right(Value, 8) <> "Smsn.com" Then

Throw New Exception("Invalid email address")

Else

_Email = Value

End If

End Set

End Property

Public Overrides Function Save() As String

Return "Employee Saved"

End Function

End Class

Модульный принцип создания программного проекта в среде проектирования и программирования Windows-приложений Visual Basic. Модули экранных форм и программные модули. Структура программного модуля. Процедуры как блоки, составляющие программный модуль. Встроенные и пользовательские процедуры. Локальные и глобальные процедуры.

В Visual Basic весь программный код находится внутри процедур (подпрограмм). Общая структура описания подпрограммы Visual Basic:

Sub <имя_подпрограммы> [(<параметры>)]

<операторы>

End Sub

Такие процедуры могут вызываться или самим Visual Basic, или другими процедурами. Вызов подпрограммы выполняется с помощью следующих операторов:

Call <имя_подпрограммы> [(<параметры>)];

<имя_подпрограммы> [<параметры>]. Функция построена точно так же, как и процедура, однако результатом работы функции является возвращаемое значение (только одно).

Общая структура описания функции следующая:

Function <имя_функции> [(<аргументы>)] [As <Тип>] <операторы>

<имя_функции> = <выражение> End Function

Вызов функции выполняется с помощью оператора; присваивания:

<переменная> = <имя_функции> {(<аргументы>)].

Использование принципов модульного программирования Windows-приложения в среде проектирования VB выражено в двух аспектах.

1. Разбиение программного кода на отдельные компактные модули.

В файле модуля формы (frm) содержится программный код, относящийся к форме и объектам этой формы. В стандартном (универсальном) модуле (bas) содержатся программные коды, которые могут использоваться не в одной, а в нескольких формах (и даже в нескольких проектах).

2. Разбиение программного кода уже внутри модуля на отдельные части — процедуры.

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

Общая процедура может входить в состав модуля экранной формы (в файл frm) или в состав стандартного модуля (в файл bas). В зависимости от того, где вы используете данную переменную, ее можно объявить несколькими способами. Если переменная объявлена в процедуре, она является переменной уровня процедуры, т.е. локальной (private) для этой процедуры. Если переменная должна использоваться во многих процедурах данного модуля, она должна быть также объявлена как локальная, но ее объявление следует вынести за пределы всех процедур или функций. Если переменная должна использоваться в других моделях и классах, то ее следует определить как глобальную (public). Область, в которой переменная доступна в приложении, называется областью действия (scope). В зависимости от области действия переменной она может быть доступна или не доступна в определенных частях вашего приложения. Областями действия для любой переменной могут быть: Public, Protected, Friend, Private, Shared и Static. Для объявления переменной вы должны использовать оператор объявления.

Встроенные функции. Определенные наборы команд, имеющиеся в языке Visual Basic и в предназначенные для вычисления тех или иных значений на основании исходных данных. Встроенными являются, в частности, как математические, так и строковые функции (Abs, Cos, Sin, Mid, Len и т.д.) Пользовательские процедуры. Группы операторов, создаваемые разработчиком для выполнения определенных задач и не зависящие от текущего состояния приложения или произошедших в тот или иной момент событий. Пользовательские процедуры обычно используются при необходимости выполнения одной и тоже последовательности операций.

6. Окна и панели среды проектирования IDE (Integrated Development Environment) для языка Visual Basic 6. Этапы создания проекта Windows-приложения в среде IDE. Разработка интерфейса экранной формы. Программирование процедур-событий для элементов управления на экранной форме. Отладка, сохранение и компиляция проекта. Демонстрация всех этапов проектирования Windows-приложения в среде IDE с использованием элементов управления Timer, Command Button и Text Box на примере создания приложения «Секундомер».

Основными элементами IDEявляются:

Меню. В состав этого элемента входят все команды, которыеиспользуются при создании приложений в среде разработки Visual basic 6.0. Среди пунктов меню есть как стандартные, присущиебольшинству окон Windows (File, Edit, View, Windows, Help), так и пункты, при помощи которых разработчик может создавать,запускать или отлаживать своё приложение (Project, Run, Debug). Меню расположено в верхней части IDE Visual basic 6.0 под заголовком окна.

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

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

ToolBar (Панели инструментов). Эти элементы представляют собой различные группы кнопок с изображенными на них иконками. При помощи данных кнопок можно выполнять те или иные операции, предусмотренные в среде разработки, не используя при этом меню; то есть выполнять одно действие –нажатие соответствующей кнопки – вместо нескольких, в случае выполнения этой же операции при помощи меню. Панели инструментов расположены в верхней части IDE Visual basic 6.0, под элементом меню.

В IDE существует четыре основные панели инструментов:

1. Debug (отладка);

2. Edit (правка);

3. Form editor (редактор форм);

4. Standard (стандартная);

По умолчанию отображается только панель Standard. С её помощью можно выполнить широкий спектр действий, которые реализованы в пунктах меню File (Файл), Project(Проект), Debug (Отладка) и Run (Запуск). Стандартная панель обычно расположена под строкой меню. Графический режим используется в том случае, когдаосуществляется редактирование формы. Текстовый режим активизируется при редактировании в окне кода.

Form designer (Дизайнер форм). Представляет собой окно, которое служит для редактирования форм, то есть добавления и удаления изних различных элементов управления.

Properties (Окно свойств). Используется для того, чтобы изменять свойства выделенного объекта подразумевается какая-либо егохарактеристика, например, имя или координаты расположения на экране.

Code (Окно редактирования кода). Предназначено для создания или редактирования кода программы. Если на экране осуществляетсяработа с несколькими окнами дизайнера форм, то имеется возможность открыть длякаждого из них своё окно кода.

Project Explorer (Окно Проводника проектов). Используется в случае необходимости работы с несколькими проектамиодновременно. Содержимое этого окна отображает иерархические структуры, вкоторых вершинами всех иерархий являются открытые в данный момент проекты, аисходящие от них ветви – являются составными частями проектов (например,формы).

Form Layout (Окно размещения форм). Даёт возможность расположить формы открытого проекта в тех областей экрана в которыхони должны находиться при выполнении приложения. Чтобы задать для формы какуюлибо область необходимо в окне размещения форм при помощи мыши переместить еёизображение в заданное место.

Date: 2015-07-23; view: 502; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию