Введение 8 Этапы создания Windowsприложения 8
Скачать 6.98 Mb.
|
10. Тип данных, определенный пользователем. СтруктурыПри обработке информации часто возникает необходимость одновременного доступа к различным характеристикам объекта. При этом удобно, когда все характеристики объекта хранятся вместе в специально разработанной структуре. Поэтому в Visual Basic 2005 помимо массивов, представляющих собой нумерованный набор элементов одного типа, существует возможность создавать произвольные структуры данных, состав которых определятся программистом. Про такие типы данных говорят, что они определены пользователем, подразумевая при этом, что программист является пользователем среды и язык программирования. Как правило, типы данных, определенные пользователем (программистом) называют структурами или записями. Структура – это непустая совокупность нескольких элементов, каждый из которых может иметь свой тип данных. Причем Visual Basic 2005 допускает использование одной структуры внутри дугой. Отдельный элемент структуры называется полем. Помимо полей структура может содержать еще различные подпрограммы. Подпрограммы, входящие в состав структуры называются методами. 10.1. Описание структуры. Область видимости. Понятие методаОписание структуры должно располагаться в самом начале модуля перед описанием всех подпрограмм, глобальных и локальных переменных. Как правило, описание структуры располагают сразу после слов Public Class. Описывать структуры внутри программы или подпрограммы нельзя. При описании структуры необходимо перечислить все ее поля, указав для каждого из них тип данных. Затем надо описать все методы, входящие в состав структуры. В общем случае описание структуры выглядит следующим образом. ОбластьВидимости Structure ИмяСтруктуры ОбластьВидимости ИмяПоля1 As ТипДанных ОбластьВидимости ИмяПоля2 As ТипДанных ... ОбластьВидимости ИмяПоляN As ТипДанных Описание методов End Structure Имена структуры, полей и методов должны строиться в соответствии с общим правилом имен. В качестве типов данных при описании полей структуры могут использоваться любые типы данных, существующие в Visual Basic 2005, в том числе и ранее объявленные структуры. Область видимости задается одним из двух ключевых слов: Private или Public. Она определяет доступность структуры, поля или метода из других частей проекта или программы. Структура, описанная как Private, доступна только в том модуле, в котором она описана. Структура, описанная как Public, доступна во всех модулях проекта. Поле, имеющее область видимости Private, доступно только внутри структуры. Если возникает необходимость обработать такое поле извне, то для этого в состав структуры включают специальные методы. Поле с областью видимости Рublic может быть обработано вне структуры. При описании полей вместо ключевого слова Public можно использовать ключевое слово Dim. Для структур разница между Dim и Public полями отсутствует. Поле структуры может быть одномерным или многомерным массивом. В этом случае после имени поля ставятся круглые скобки. Если массив должен быть многомерным, то между скобками ставится необходимое количество запятых. Обратите внимание, что в составе структуры могут использоваться только массивы с неизвестным номером последнего элемента. Обработка массивов, являющихся полями структуры, ничем не отличается от обработки аналогичных массивов, описанных вне структуры. В состав структуры мимо полей могут входить еще и методы. Метод – это подпрограмма, входящая в состав структуры и предназначенная для обработки полей только той структуры, где она описана. Поля других структур метод обрабатывать не может. Метод может быть как функцией, так и процедурой (подробное описание процедур и функций приведено в 11 главе). В зависимости от этого несколько меняется описание метода. Описание метода-процедуры. ОбластьВидимости Sub ИмяПроцедуры(Параметры) Операторы End Sub Описание метода-функции. ОбластьВидимости Function ИмяФункции(Параметры) _ As ТипРезультата Операторы Return Результат End Function Область видимости метода определяет, будет ли данный метод доступен вне структуры. Рublic метод предназначен для обработки полей структуры и может быть вызван из любой другой подпрограммы, в том числе и не принадлежащей данной структуре. Private метод является вспомогательным и не может быть вызван извне структуры. В качестве примера рассмотрим описание структуры, предназначенной для хранения информации о городах. Для каждого города требуется хранить его название, значения дневной и ночной температуры. Чтобы эту структуру можно было использовать в других модулях программы, зададим для нее область видимости Public. А самой структуре дадим имя Gorod. Public Structure Gorod Последовательно опишем все поля структуры. Для каждого данного заведем отдельное поле. Первым будет поле для хранения названия города. Очевидно, что это поле будет иметь строковый тип данных. Public Nazvanie As String Два следующих поля предназначены соответственно для хранения дневной и ночной температуры. Они имеют целый тип. Public Den As Integer Public Noch As Integer Для удобства работы включим в состав структуры два метода-функции. Первый из них предназначен для упрощения вывода структуры. Он формирует и возвращает строку, в которую входят значения всех полей. Для формирования колонок используется константа vbTab. Числовые поля преобразуются в строки с помощью функции Str. Строковые поля преобразовывать не надо. Public Function Print() As String Return Nazvanie + vbTab + Str(Den) + _ vbTab + Str(Noch) End Function Второй метод предназначен для вычисления среднесуточной температуры в городе. Для этого складываются значения дневной и ночной температур, и полученная сумма делится на два. Очевидно, что значение среднесуточной температуры, полученное в результате деления, будет рациональным числом. Следовательно, эта функция должна иметь рациональный тип результата. Public Function Srednee() As Single Return (Den + Noch) / 2 End Function End Structure |