- •Высокоуровневые методы программирования
- •Принцип сокрытия внутренней структуры объекта от пользователя. Понятие инкапсуляции. Пример инкапсуляции в среде проектирования и программирования Windows-приложений Visual Basic.
- •Возможность использования одних и тех же методов разными классами объектов. Понятие полиморфизма. Пример полиморфизма в среде проектирования и программирования Windows-приложений Visual Basic.
- •Типы переменных Visual Basic
- •Операторы цикла. Цикл со счетчиком и цикл с условием. Примеры использования циклических операторов на языке Visual Basic.
Возможность использования одних и тех же методов разными классами объектов. Понятие полиморфизма. Пример полиморфизма в среде проектирования и программирования 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
Модульный принцип создания программного проекта в среде проектирования и программирования 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).
Окна и панели среды проектирования 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
Переменная как изменяемая часть программы. Имя и тип переменной. Перечень типов переменных в среде проектирования и программирования Windows-приложений Visual Basic. Область видимости переменной. Локальная и глобальная переменные. Способы объявления переменной.
Переменная объявляется для того, чтобы задать ее имя и характеристики. Оператором объявления переменных является Оператор Dim. Его местоположение и содержание определяют характеристики переменной.