Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы программирования.docx
Скачиваний:
8
Добавлен:
23.09.2019
Размер:
189.53 Кб
Скачать
  1. Возможность использования одних и тех же методов разными классами объектов. Понятие полиморфизма. Пример полиморфизма в среде проектирования и программирования Windows-приложений Visual Basic.

Полиморфизм (polymorphism) (от греческого polymorphos) - это свойство, которое позволяет одно и то же имя использовать для решения двух или более схожих, но технически разных задач. Целью полиморфизма, применительно к объектно-ориентированному программированию, является использование одного имени для задания общих для класса действий. Выполнение каждого конкретного действия будет определяться типом данных. Например для языка Си, в котором полиморфизм поддерживается недостаточно, нахождение абсолютной величины числа требует трёх различных функций: abs(), labs() и fabs(). Эти функции подсчитывают и возвращают абсолютную величину целых, длинных целых и чисел с плавающей точкой соответственно. В С++ каждая из этих функций может быть названа abs(). Тип данных, который используется при вызове функции, определяет, какая конкретная версия функции действительно выполняется. В С++ можно использовать одно имя функции для множества различных действий. Это называется перегрузкой функций (function overloading).

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

  Полиморфизм может применяться также и к операторам. Фактически во всех языках программирования ограниченно применяется полиморфизм, например, в арифметических операторах. Так, в Си, символ + используется для складывания целых, длинных целых, символьных переменных и чисел с плавающей точкой. В этом случае компилятор автоматически определяет, какой тип арифметики требуется. В С++ вы можете применить эту концепцию и к другим, заданным вами, типам данных. Такой тип полиморфизма называется перегрузкой операторов (operator overloading).

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

Например, можно определить класс, BaseTax, который предоставляет базовые функциональные возможности для вычисления налога с продаж в стране. Классы, производные от BaseTax, например, CountyTax или CityTax, могут реализовать такие методы, как CalculateTax как соответствующие.

Полиморфизм основан на том, что Вы можете вызвать метод CalculateTax объекта, принадлежащего любому классу, производному от BaseTax, не зная, к какому классу объект принадлежит.

Процедура TestPoly в следующем примере наглядно демонстрирует полиморфизм на основе наследования:

Const StateRate As Double = 0.053

Const CityRate As Double = 0.028

Public Class BaseTax

Overridable Function CalculateTax(ByVal Amount As Double) As Double

' Calculate state tax.

Return Amount * StateRate

End Function

End Class

Public Class CityTax

' This method calls a method in the base class

' and modifies the returned value.

Inherits BaseTax

Private BaseAmount As Double

Overrides Function CalculateTax(ByVal Amount As Double) As Double

' Some cities apply a tax to the total cost of purchases,

' including other taxes.

BaseAmount = MyBase.CalculateTax(Amount)

Return CityRate * (BaseAmount + Amount) + BaseAmount

End Function

End Class

Sub TestPoly()

Dim Item1 As New BaseTax

Dim Item2 As New CityTax

ShowTax(Item1, 22.74)

ShowTax(Item2, 22.74)

End Sub

Sub ShowTax(ByVal Item As BaseTax, ByVal SaleAmount As Double)

' Item is declared as BaseTax, but you can

' pass an item of type CityTax instead.

Dim TaxAmount As Double

TaxAmount = Item.CalculateTax(SaleAmount)

MsgBox("The tax is: " & Format(TaxAmount, "C"))

End Sub

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

Public Module thisModule

Sub Main()

Dim userName As String = InputBox("What is your name?")

MsgBox("User name is" & userName)

End Sub

' Insert variable, property, procedure, and event declarations.

End Module

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

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

<операторы>

End Sub

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

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

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

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

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

<операторы>

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

End Function

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

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

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

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

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

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

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

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

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

  • Редактор Visual Basic в интерпретации Microsoft называется Интегрированной Средой Проектирования (IDE).

  • В IDE собраны все средства и инструменты, необходимые программисту для разработки и создания приложений (написание и редактирование программ; проектирование диалоговых окон и других элементов приложений, облегчающих взаимодействие с пользователем; запуск программ; тестирование и отладка программ; отслеживание работы всех элементов каждой конкретной программы; контроль за взаимодействием различных VBA-программ).

Самое большое окно в Visual Basic – окно редактирования кода (1), которое служит в качестве редактора для ввода кода процедур приложения. Код внутри модуля организован в отдельные разделы для каждого объекта, программируемого в модуле.

Над окном редактирования кода располагается стандартная панель инструментов (2), которую можно отобразить на экране выбором команды View®Toolbars®Standard.

Щелчок по кнопке (3) на стандартной панели инструментов либо выбор команды View®Project Explorer открывают окно проектов Project (4), в котором отображается структура проекта в виде дерева.

  • Окно свойств Properties (5) предназначено для установки свойств форм и элементов управления. Окно отображается на экране либо выбором команды View®Properties Window, либо нажатием кнопки (6) на стандартной панели инструментов. Список разделен на две колонки. В левой колонке находятся имена свойств, а в правой – их значения. Установленные по умолчанию значения могут быть изменены.

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

  • При необходимости может быть отрыто еще одно важное окно – окно просмотра характеристик объектов Object Browser (7) либо нажатием кнопки (8) на стандартной панели инструментов, либо выбором команды View®Object Browser.

  • В левой колонке окна производится выбор объекта или класса объектов. В правой колонке появляется перечень свойств, методов и событий выбранного объекта или класса объектов. Выбрав элемент списка можно получить о нем краткую информацию, которая появляется в нижней части окна. Для каждого класса объектов существует определенный набор свойств, методов и событий.

Для создания пользовательской формы надо выполнить следующие действия:

1. Открыть новый файл или любой файл, в котором вы уже работали.

2. Выполнить команду меню Сервис | Макрос | Редактор Visual Basic. Откроется окно редактора Visual Basic.

3. Щелкнуть на кнопке Insert UserForm панели инструментов окна редактора Visual Basic или выполнить команду Insert | UserForm (Вставка | Экранная форма). Появится новая экранная форма.

Созданная экранная форма имеет по умолчанию строку с заголовком UserForm1. Сетка на макете формы помогает размещению элементов управления, при отображении формы в приложении сетка не видна.

После создания формы необходимо просмотреть свойства этого объекта и изменить установки, если это требуется по условию задачи. Для отображения окна свойств надо выбрать команду View | Properties Window (Вид | Окно свойств) или щелкнуть по одноименной кнопке на панели инструментов .

Программа «Секундомер». Необходимо на форму добавить элемент таймера Timer1, а также две кнопки Command1, Command2, текстовую метку Label1

Option Explicit

Dim strsecond As String

Dim strminute As String

Dim strhour As String

Private Sub Command1_Click()

Timer1.Enabled = True

End Sub

Private Sub Command2_Click()

strsecond = "00"

strminute = "00"

strhour = "00"

Metka

End Sub

Private Sub Command3_Click()

Timer1.Enabled = False

End Sub

Private Sub Form_Load()

Timer1.Enabled = False

Timer1.Interval = 1000

strsecond = "00"

strminute = "00"

strhour = "00"

Label1 = strhour & " : " & strminute & " : " & strsecond

Noll

End Sub

Private Sub Timer1_Timer()

strsecond = strsecond + 1

If strsecond > 59 Then

strsecond = 0

strminute = strminute + 1

End If

If strminute > 59 Then

strminute = 0

strhour = strhour + 1

End If

Noll

Metka

End Sub

Private Sub Noll()

If Len(strsecond) < 2 Then strsecond = "0" & strsecond

If Len(strminute) < 2 Then strminute = "0" & strminute

If Len(strhour) < 2 Then strhour = "0" & strhour

End Sub

Private Sub Metka()

Label1 = strhour & " : " & strminute & " : " & strsecond

End Sub

  1. Переменная как изменяемая часть программы. Имя и тип переменной. Перечень типов переменных в среде проектирования и программирования Windows-приложений Visual Basic. Область видимости переменной. Локальная и глобальная переменные. Способы объявления переменной.

Переменная объявляется для того, чтобы задать ее имя и характеристики. Оператором объявления переменных является Оператор Dim. Его местоположение и содержание определяют характеристики переменной.