Ход работы:
-
Изучить теоретическую часть.
-
Выполнить задание, следуя указаниям.
-
Ответить на контрольные вопросы (в устной форме).
-
Предъявить преподавателю результаты работы программы и исходные коды.
-
Оформить отчет в соответствии с ходом работы (тема, цель, условие задачи, программный код, результаты тестирования программы, выводы).
Теоретическая часть
Процесс создания объектов (экземпляров класса) в VisualBasic.NET можно разделить на три этапа:
1. Создание файла классов.
2. Написание кодов в файле классов.
3. Объявление в программе переменных, которые представляют собой файлыклассов.
Если переменная представляет файл классов, она называется объектом —термином, взятым из концепции объектно-ориентированного программирования.
Файл классов является, по сути, шаблоном, который определяет, как должны вести себя объекты. После создания файла классов вам еще нужно объявить переменную — чтобы создать таким образом сам объект.
Определение объекта
После того как файл классов будет создан, приступайте к написанию кодов, определяющих, что из себя представляет новый объект. Обычно такие коды (они также называются модулем класса) состоят из трех частей:
объявление переменных;
объявление свойств (данных);
методы, являющиеся процедурами BASIC, которые манипулируют переменными и свойствами.
PublicClassClassl
Объявление переменных
Объявление свойств
Методы
EndClass
Каждый объект инкапсулирует (отделяет) свои данные (свойства) от остальной части программы. Эти данные могут быть изменены лишь командами (методами), сохраненными в томже файле классов. Таким образом, другие команды программы никогда непосредственно необращаются к данным, принадлежащим какому-то объекту.
Если возникает необходимость изменить способ обработки каких-либо данных, просматривать всю программу уже не нужно — достаточно изменить коды только одного объекта.
Таким образом, объектно-ориентированное программирование помогает изолировать команды, которые имеют доступ к определенным данным, что значительно снижает вероятностьвозникновения ошибок при внесении изменений в коды программы.
Объявление переменных
Объявление переменных в начале модуля класса является хорошей практикой (к тому жеобязательной), поскольку позволяет в любой момент видеть, какие данные этим классом используются. Если нужно объявить переменную, доступ к которой могут получить командытолько этого класса, объявите ее как локальную переменную:
Private Число AsInteger
Чтобы объявитьглобальную переменную, замените слово Private ключевым словом Public:
Public Число AsInteger
Объявление свойств объектов
Свойства объектов представляют те данные, доступ к которым имеют все коды вашейпрограммы. Любая часть программы может передать свойствам объектов новые значения иизвлечь хранимые ими данные. Коды объявления свойств выглядят приблизительно так:
Dim. ИмяПеременнойAsТипДанных
PublicPropertyНазваниеСвойства() AsТипДанных
Get
НазваниеСвойства = ИмяПеременной
EndGet
Set (ByVal Значение AsТипДанных)
ИмяПеременной = Value
End Set
End Property
Чтобы объявить свойство объекта, нужно создать локальную переменную (ИмяПеременной),в которой будет храниться значение свойства. Вместо имени ИмяПеременной можно присвоитьлюбое другое имя.Тип этой переменной (ТипДанных) должен совпадать с типом данных, объявленным длясвойства. Например, если объявлено, что свойство будет содержать значения типа String,переменная также должна иметь тип String.И, наконец, необходимо указать имя, посредством которого другие коды программы смогут иметь доступ к значениям свойств объектов (НазваниеСвойства).Например, если нужно объявить свойство объекта, именуемое словом Вектор и содержащее значения типа Integer, это можно сделать так:
Dim ЗначВекAs Integer
PublicProperty Вектор () As Integer
Get
Вектор = ЗначВек
End Get
Set
ЗначВек = Value
End Set
End Property
Вот как эти коды будут восприняты VisualBasic .NET.
В первой строке объявляется о создании переменной ЗначВек, которая может содержать значения типа Integer.
2. Вторая строка говорит: "Создай свойство Вектор, которое будет представлять данные типа Integer".
3. Третья, четвертая и пятая строки дают указание: "Когда другая часть программы хочет извлечь (Get) данные, представляемые свойством Вектор, передай ей значение переменной ЗначВек".
4. Шестая, седьмая и восьмая строки говорят: "Когда другая часть программыхочет передать (Set) новое значение свойству Вектор, сохрани его как значение локальной переменной ЗначВек".
5. А девятая строка сообщает: "На этом объявление свойства завершается"'.
Создание объектов
Модуль класса— это еще не объект. Он является лишь средством, с помощью которого объекты создаются. Согласно терминологии объектно-ориентированного программирования, создание объектов называется также созданием экземпляров классов.
Чтобы создать экземпляр класса, нужно создать объект, который будет представлять модуль класса. Для этого используется ключевое слово New:
DimИмяОбъектаAsNewНазваниеКласса
Вот что эта строка означает для VisualBasic .NET.
1. Слово Dim говорит: "Сейчас будет объявлено о создании объекта".
2. Словом ИмяОбъекта обозначается имя объекта.
3. Слово New дает указание: "Создай новый объект, который будет представлять модуль класса, именуемый НазваниеКласса".
НазваниеКласса — это то имя, которое вы дали файлу класса в момент его создания. Если вы сами не укажете это имя, VisualBasic .NET присвоит ему автоматически генерируемое имя наподобие C l a s s l .
Использование объектов
После того как объект создан, остается только использовать его для:
сохранения значений в свойствах объектов;
извлечения данных через свойства объектов;
манипулирования данными объектов с помощью методов объектов.
Чтобы передать объекту данные, необходимо написать такой код:
ИмяОбъекта.Свойство = Значение
Извлечь информацию, хранящуюся в объекте, вам поможет код:
ИмяПеременной = ИмяОбъекта.Свойство
А чтобы запустить метод объекта, наберите следующее:
ИмяОбъекта.Метод
Задание. Следуя указаниям, создайте программу, которая запрашивает у нового сотрудника имя, фамилию и дату рождения. Вы будете хранить эту информацию в свойствах нового класса с именем Person, и создадите метод класса, который будет вычислять текущий возраст нового сотрудника. Этот проект научит вас создавать собственные классы, экземпляры классов (объекты) а также как использовать эти классы в процедурах событий вашей программы.
Добавление в ваш проект нового класса
Класс, определенный пользователем, позволяет определить в программе ваши собственные объекты, которые имеют свойства, методы и события, точно так же, как объекты, создаваемые на формах Windows с помощью элементов управления из Области элементов. Чтобы добавить в ваш проект новый класс, щелкните в меню Проект (Project) на команде Добавить класс (AddClass), а затем определите этот класс с помощью кода программы и нескольких новых ключевых слов VisualBasic.
Создание проекта PersonClass
Запустите MicrosoftVisualStudio2010, затем создайте в своей папке новый проект с именем MyPersonClass.
Используйте элемент управления Label и добавьте в верхней части формы Form1 длинную метку.
Используйте элемент управления TextBox и нарисуйте под меткой два широких текстового поля.
Используйте элемент управления DateTimePicker и нарисуйте под текстовыми полями объект выбора даты и времени.
Используйте элемент управления Button и нарисуйте под объектом выбора даты и времени кнопку.
-
Установите для объектов формы следующие свойства:
Объект
|
Свойство
|
Установка
|
Label1
|
Text
|
Введите имя, фамилию и дату рождения сотрудника.
|
TextBox1
|
Text
|
Имя
|
TextBox2
|
Text
|
Фамилия
|
Button1
|
Text
|
Отобразить запись
|
Form1
|
Text
|
Класс Person
|
Ваша форма должна выглядеть примерно так.
Это базовый интерфейс пользователя для формы, которая определяет запись нового сотрудника фирмы. (Эта форма не подключена к базе данных, так что храниться может только одна запись.) Теперь вы должны добавить в проект класс для хранения информации из этой записи.
Щелкните на командеДобавить класс(AddClass) в меню Проект (Project). VisualStudio откроет диалоговое окно Добавление нового элемента (AddNewItem), показанное ниже.
Диалоговое окно Добавление нового элемента дает возможность задать имя вашего класса. Когда вы присвоите имя, обратите внимание, что вы можете сохранить в новом модуле класса несколько классов и указать имя, которое будет для них общим.
Введите в текстовом поле Имя(Name) имя Person.vb, а затем щелкнитеДобавить. VisualStudio откроет в Редакторе кода пустой модуль класса и добавит имя файла Person.vb в ваш проект в Обозревателе решений, как показано на рисунке.
Объявление переменных класса
Под оператором программы PublicClassPerson введите следующие объявления переменных:
Здесь вы объявляете две переменные, которые будут использованы исключительно в модуле класса для хранения значений двух строковых свойств. Переменные объявлены с помощью ключевого слова Private, так как по соглашению VisualBasic программисты должны держать внутренние переменные класса закрытыми - другими словами, недоступными для просмотра извне самого модуля класса.
Создание свойств
Под объявлением переменных введите следующий оператор программы и нажмите клавишу (Enter):
Этот оператор создает свойство вашего класса с именем FirstName, которое имеет тип String. Когда вы нажмете (Enter), VisualStudio немедленно создаст структуру кода для остальных элементов объявления свойства. Требуемыми элементами являются: блок Get, который определяет, что программисты увидят, когда будут проверять свойство FirstName, блок Set, который определяет, что произойдет, когда свойство FirstName будет установлено или изменено, и оператор EndProperty, который отмечает конец процедуры свойства.
Заполните структуру процедуры свойства так, чтобы она выглядела, как показано ниже.
Ключевое слово Return указывает, что при обращении к свойству FirstName будет возвращена строковая переменная Name1. При установке значения свойства блок Set присваивает переменной Name1 строковое значение. Обратите особое внимание на переменную Value, используемую в процедурах свойств для обозначения значения, которое присваивается свойству класса при его установке. Хотя этот синтаксис может выглядеть странно, просто поверьте мне - именно так создаются свойства в элементах управления, хотя более сложные свойства будут иметь здесь дополнительную программную логику, которая будет проверять значения и производить вычисления.
Под оператором EndProperty введите для свойства LastName вашего класса вторую процедуру свойства. Она должна выглядеть так, как показано ниже.
Эта процедура свойства аналогична первой, за исключением того, что она использует вторую строковую переменную (Name2), которую вы объявили в верхней части кода класса. Вы закончили определять два свойства вашего класса. Теперь перейдем к методу с именем Age, который будет определять текущий возраст нового сотрудника на основе даты рождения.
Создание метода
Под процедурой свойства LastName введите следующее определение функции:
Чтобы создать метод класса, который выполняет некое действие, добавьте в ваш класс процедуру Sub. Хотя многие методы не требуют для выполнения своей работы аргументов, метод Age, определенный мной, требует для своих вычислений аргумент Birthday типа Date. Это метод использует для вычитания даты рождения нового сотрудника из текущей системной даты метод Subtract, и возвращает значение, выраженное в днях, деленных на 365.25 - примерную длину одного года в днях. Функция Int преобразует это значение в целое, и это число с помощью оператора Return возвращается в вызывающую процедуру - как и в случае с обычной функцией.
Определение класса закончено! Вернитесь к форме Form1 и используйте новый класс в процедуре события.
Совет. Хотя в данном примере это и не делалось, в реальном проекте полезно добавить в модуль класса логику для проверки типов данных. Это делается для того, чтобы неправильное использование свойств или методов, не приводило к возникновению ошибок времени исполнения, из-за которых выполнение программы может прерваться.
Создание объекта с помощью нового класса
Щелкните в Обозревателе решений на значке Form1.vb, а затем на кнопкеОткрыть в конструкторе. Появится интерфейс пользователя Form1.
Чтобы открыть в Редакторе кода процедуру события Button1_Click, сделайте двойной щелчок мышью на кнопкеОтобразить запись.
Введите следующие операторы программы:
Эта процедура сохраняет в объекте с именем Employee, который имеет тип Person, значения, введенные пользователем. Ключевое слово New указывает, что вы хотите немедленно создать новый экземпляр объекта Employee. Теперь нужно объявить переменную с помощью класса, созданного вами самими! Затем процедура объявляет переменную с именем DOB типа Date. Она будет хранить дату, введенную пользователем, и устанавливает свойства FirstName и LastName объекта Employeeравными имени и фамилии, введенным в два объекта текстовых полей формы. Значение, возвращаемое объектом выбора даты и времени, сохраняется в переменной DOB, а последний оператор программы отображает окно сообщения, содержащее свойства FirstName и LastName, а также возраст нового сотрудника, определенный методом Age, который при передаче в него переменной DOB возвращает целое значение. Как только вы определили класс в модуле класса, его легко можно использовать в процедуре события.
Чтобы запустить программу, щелкните на кнопке Начать отладку (F5).В среде разработки появится интерфейс пользователя, готовый к приему ваших данных.
Введите в текстовое поле FirstName ваше имя, а в текстовое поле LastName - фамилию.
Щелкните на раскрывающемся списке объекта выбора даты и времени, и прокрутите его до вашей даты рождения.
Совет. Вы можете быстро прокрутить список, щелкнув в открытом диалоговом окне объекта выбора даты на поле года. Появятся небольшие стрелки прокрутки, и вы сможете переходить сразу на год вперед или назад. Также можно быстро перейти на нужный вам месяц, щелкнув на поле месяца, а затем на месяце в появившемся меню.
Ваша форма будет выглядеть примерно так.
Щелкните на кнопкеОтобразить запись. Ваша программа сохраняет значения имени и фамилии в свойствах и использует метод Age для вычисления текущего возраста нового сотрудника. Появится диалоговое окно с результатом.
Чтобы закрыть это окно сообщения, щелкните на OK, а затем поэкспериментируйте с несколькими различными значениями дат, щелкая наОтобразить запись каждый раз, когда вы меняете значение поля даты рождения.
Контрольные вопросы:
Определите понятия класс, экземпляр класса, объект.
На какие этапы можно разбить процесс создания экземпляров класса.
Как создать базовый файл класса, какой код он содержит.
Синтаксис объявления переменной класса.
Создание в классе нового свойства.
Создание в классе нового метода.
Объявление переменной объекта для использования в классе.
Обращение к свойствам и методам объекта.
Лабораторная работа №3
Создание наследованного класса
Цель:научиться создавать наследованные классы, реализовать наследование форм в среде VisualStudio.
|