Опубликован: 31.08.2006 | Уровень: специалист | Доступ: платный
Лекция 18:

Наследование форм и создание базовых классов

< Лекция 17 || Лекция 18: 12345 || Лекция 19 >
Создание свойств
  1. Под объявлением переменных введите следующий оператор программы и нажмите клавишу (Enter):

    Public Property FirstName() As String

    Этот оператор создает свойство вашего класса с именем FirstName, которое имеет тип String. Когда вы нажмете (Enter), Visual Studio немедленно создаст структуру кода для остальных элементов объявления свойства. Требуемыми элементами являются: блок Get, который определяет, что программисты увидят, когда будут проверять свойство FirstName, блок Set, который определяет, что произойдет, когда свойство FirstName будет установлено или изменено, и оператор End Property, который отмечает конец процедуры свойства.

    Примечание. В Visual Basic 6 процедуры свойств содержали блоки кода Property Get, Property Let и Property Set. Этот синтаксис больше не поддерживается.
  2. Заполните структуру процедуры свойства так, чтобы она выглядела, как показано ниже. (Вводимые вами элементы не выделены жирным шрифтом.)

    Public Property FirstName() As String
    	Get
    		Return Name1
    	End Get
    	Set(ByVal Value As String)
    		Name1 = Value
    	End Set
    End Property

    Ключевое слово Return указывает, что при обращении к свойству FirstName будет возвращена строковая переменная Name1. При установке значения свойства блок Set присваивает переменной Name1 строковое значение. Обратите особое внимание на переменную Value, используемую в процедурах свойств для обозначения значения, которое присваивается свойству класса при его установке. Хотя этот синтаксис может выглядеть странно, просто поверьте мне - именно так создаются свойства в элементах управления, хотя более сложные свойства будут иметь здесь дополнительную программную логику, которая будет проверять значения и производить вычисления.

  3. Под оператором End Property введите для свойства LastName вашего класса вторую процедуру свойства. Она должна выглядеть так, как показано ниже. (Жирным шрифтом выделены строки, которые нужно ввести.)

    Public Property LastName() As String
    	Get
    		Return Name2
    	End Get
    		Set(ByVal Value As String)
    		Name2 = Value
    	End Set
    End Property

    Эта процедура свойства аналогична первой, за исключением того, что она использует вторую строковую переменную ( Name2 ), которую вы объявили в верхней части кода класса. Вы закончили определять два свойства вашего класса. Теперь перейдем к методу с именем Age, который будет определять текущий возраст нового сотрудника на основе даты рождения.

Создание метода
  • Под процедурой свойства LastName введите следующее определение функции:

    Public Function Age(ByVal Birthday As Date) As Integer
    	Return Int(Now.Subtract(Birthday).Days / 365.25)
    End Function

    Чтобы создать метод класса, который выполняет некое действие, добавьте в ваш класс процедуру Sub. Хотя многие методы не требуют для выполнения своей работы аргументов, метод Age, определенный мной, требует для своих вычислений аргумент Birthday типа Date. Это метод использует для вычитания даты рождения нового сотрудника из текущей системной даты метод Subtract, и возвращает значение, выраженное в днях, деленных на 365.25 - примерную длину одного года в днях. Функция Int преобразует это значение в целое, и это число с помощью оператора Return возвращается в вызывающую процедуру - как и в случае с обычной функцией. (За дополнительной информацией об определении функций обратитесь к "Использование модулей и процедур" .)

    Определение класса закончено! Вернитесь к форме Form1 и используйте новый класс в процедуре события.

    Совет. Хотя в данном примере это и не делалось, в реальном проекте полезно добавить в модуль класса логику для проверки типов данных. Это делается для того, чтобы неправильное использование свойств или методов, не приводило к возникновению ошибок времени исполнения, из-за которых выполнение программы может прерваться.
Создание объекта с помощью нового класса
  1. Щелкните в Обозревателе решений на значке Form1.vb, а затем на кнопке View Designer (Просмотреть конструктор). Появится интерфейс пользователя Form1.
  2. Чтобы открыть в Редакторе кода процедуру события Button1_Click, сделайте двойной щелчок мышью на кнопке Отобразить запись.
  3. Введите следующие операторы программы:

    Dim Employee As New Person
    Dim DOB As Date
    
    Employee.FirstName = TextBox1.Text
    Employee.LastName = TextBox2.Text
    DOB = DateTimePicker1.Value.Date
    
    MsgBox(Employee.FirstName & ""& Employee.LastName _
    & "в возрасте " & Employee.Age(DOB) & "лет.")

    Эта процедура сохраняет в объекте с именем Employee, который имеет тип Person, значения, введенные пользователем. Ключевое слово New указывает, что вы хотите немедленно создать новый экземпляр объекта Employee. Теперь нужно объявить переменную с помощью класса, созданного вами самими! Затем процедура объявляет переменную с именем DOB типа Date. Она будет хранить дату, введенную пользователем, и устанавливает свойства FirstName и LastName объекта Employee равными имени и фамилии, введенным в два объекта текстовых полей формы. Значение, возвращаемое объектом выбора даты и времени, сохраняется в переменной DOB, а последний оператор программы отображает окно сообщения, содержащее свойства FirstName и LastName, а также возраст нового сотрудника, определенный методом Age, который при передаче в него переменной DOB возвращает целое значение. Как только вы определили класс в модуле класса, его легко можно использовать в процедуре события.

  4. Чтобы запустить программу, щелкните на кнопке Start (Начать).

    Примечание. Готовая программа Person Class лежит в папке c:\vbnet03sbs\Гл.17\person class.

    В среде разработки появится интерфейс пользователя, готовый к приему ваших данных.

  5. Введите в текстовое поле First Name ваше имя, а в текстовое поле Last Name - фамилию.
  6. Щелкните на раскрывающемся списке объекта выбора даты и времени, и прокрутите его до вашей даты рождения.

    Совет. Вы можете быстро прокрутить список, щелкнув в открытом диалоговом окне объекта выбора даты на поле года. Появятся небольшие стрелки прокрутки, и вы сможете переходить сразу на год вперед или назад. Также можно быстро перейти на нужный вам месяц, щелкнув на поле месяца, а затем на месяце в появившемся меню.

    Ваша форма будет выглядеть примерно так.


  7. Щелкните на кнопке Отобразить запись. Ваша программа сохраняет значения имени и фамилии в свойствах и использует метод Age для вычисления текущего возраста нового сотрудника. Появится диалоговое окно с результатом.


  8. Чтобы закрыть это окно сообщения, щелкните на OK, а затем поэкспериментируйте с несколькими различными значениями дат, щелкая на Отобразить запись каждый раз, когда вы меняете значение поля даты рождения.
  9. Когда вы закончите экспериментировать с вашим новым классом, щелкните на кнопке Закрыть. Вернется среда разработки.
< Лекция 17 || Лекция 18: 12345 || Лекция 19 >
Сайдахмад Зарипов
Сайдахмад Зарипов
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?

Виталий Григорьев
Виталий Григорьев
Россия, москва, мгсги, 2011
Надежда Серекпаева
Надежда Серекпаева
Россия, Тюмень, Тюменский индустриальный институт, 1992