
- •Тема 5.3. Средства объектно-ориентированного программирования в vb
- •5.3.1. Две роли классов в ооп и типы данных в vb
- •5.3.2. Средства создания классов в vb
- •5.3.2.1. Средства создания пользовательских классов
- •5.3.2.2. Пошаговое руководство для создания приложения с классами
- •Определение класса
- •Создание кнопки для тестирования класса
- •Запуск приложения
- •5.3.3. Взаимодействие, взаимное различие и сходство форм, модулей и классов
- •5.3.4. Создание объектной модели и приложений с использованием классов
- •5.3.5. Иерархия классов и наследование
- •Наследование и тождественность
- •Базовые классы и повторное использование кода
- •Взаимозаменяемые производные классы
- •Неполные иерархии классов
- •Глобальные изменения производных классов через базовый класс
- •Изменение структуры базовых классов после развертывания
- •Проблема уязвимости базовых классов
- •Сведение к минимуму проблем уязвимости базовых классов
- •5.3.6. Задачи для самостоятельного решения по теме «Средства объектно-ориентированного программирования в Visual Basic»
- •Практикум
- •5.3.7. Тестовые задания по теме «Средства объектно-ориентированного программирования в vb»
- •Тема 5.3. Средства объектно-ориентированного программирования в Visual Basic Страница 85
5.3.2.2. Пошаговое руководство для создания приложения с классами
В данном пошаговом руководстве подробно рассказано, как определить классы, на основе которых впоследствии можно создать объекты. Здесь также показано, как добавить свойства и методы в новый класс и как инициализировать объект.
Определение класса
Создайте проект; для этого в меню Файл выполните команду Создать проект. Откроется диалоговое окно Создать проект.
Выберите приложение Windows из списка шаблонов проектов Visual Basic для отображения нового проекта.
Добавьте в проект новый класс; для этого в меню Проект щелкните Добавление класса. Откроется диалоговое окно Добавление нового элемента.
Выберите шаблон Класс.
Назовите новый класс UserNameInfo.vb и нажмите кнопку Добавить, чтобы отобразить код для нового класса.
-
Public Class UserNameInfo
End Class
Можно использовать Редактор кода, чтобы добавить класс в форму запуска; для этого введите ключевое слово Class, следом за которым укажите имя нового класса. Редактор кода предоставляет соответствующий оператор End Class.
Определите закрытое поле для класса, добавив следующий код между операторами Class и End Class:
Private userNameValue As String
Объявление полей как Private означает, что они могут использоваться только внутри класса. Можно сделать поля доступными извне класса с помощью модификаторов доступа, например Public, которые обеспечивают дополнительный доступ.
Определите свойство для класса, добавив следующий код:
Public Property UserName() As String
Get
' Узнать значение поля класса.
Return userNameValue
End Get
Set(ByVal Value As String)
' Установить(присвоить) значение полю класса.
userNameValue = Value
End Set
End Property
Определите метод для класса, добавив следующий код:
' Метод класса, измененяющий значение поля.
Public Sub Capitalize()
' Перевести все буквы поля в верхний регистр.
userNameValue = userNameValue.ToUpper()
End Sub
Определите параметризованный конструктор для нового класса, добавив процедуру Sub New:
Public Sub New(ByVal UserName As String)
' Задаем начальное значение для поля класса.
Me.UserName = UserName
End Sub
Конструктор Sub New вызывается автоматически при создании объекта на основе данного класса. Этот конструктор задает значение поля, в котором содержится имя пользователя.
Создание кнопки для тестирования класса
Переключите форму запуска в режим конструктора; для этого щелкните правой кнопкой мыши ее название в обозревателе решений, а затем выберите команду Конструктор представлений. По умолчанию форма запуска для проектов приложений Windows называется Form1.vb. Затем появится главная форма.
Добавьте в главную форму кнопку и дважды щелкните ее, чтобы отобразить код обработчика событий
Button1_Click
.Добавьте следующий код, чтобы вызвать процедуру тестирования:
' Создание экземпляра класса.
Dim user As New UserNameInfo("Moore, Bobby")
' Вызов метода для изменения значения поля.
user.Capitalize()
' Вывод значения поля через св-во UserName.
MsgBox("Исходное имя пользователя: " & user.UserName)
' Изменение значения поля через св-во UserName.
user.UserName = "Worden, Joe"
' Повторный вывод значения поля через св-во UserName
MsgBox("Новое имя пользователя: " & user.UserName)