Добавление методов в класс
Обновлен: Ноябрь 2007
На этом занятии будет рассказано, как добавлять методы в класс, чтобы он мог выполнять действия.
В предыдущем занятии Подробное рассмотрение. Понятие о свойствах, методах и событиях было рассказано, что большинство объектов имеют выполняемые действия; эти действия называются методами. Класс Persons, созданный на занятии Моделирование объекта реального мира: создание первого класса, представляет человека. Существует много действий, которые могут выполнять люди, и для класса Persons эти действия могут быть выражены как методы класса.
Методы класса
Методы класса являются процедурами типа Sub или Function, объявленными в классе. Например, класс Account может иметь метод типа Sub с названием Recalculate, обновляющий баланс, или метод с названием CurrentBalance типа Function, используемый для получения последнего баланса. Код для объявления этих методов может выглядеть следующим образом:
Public Sub Recalculate()
' add code to recalculate the account.
End Sub
Public Function CurrentBalance(ByVal AccountNumber As Integer) As Double
' add code to return a balance.
End Function
В то время как большинство методов класса открытые, пользователь также может добавить методы, которые могут быть использованы только самим классом. Например, класс Persons может иметь свои собственные функции для вычисления возраста человека. Если объявить функцию как Private, ее нельзя будет просматривать или вызывать вне класса.
Код закрытой функции может выглядеть следующим образом:
Private Function CalcAge(ByVal year As Integer) As Integer
CalcAge = My.Computer.Clock.LocalTime.Year - year
End Function
Позднее можно изменить код, который вычисляет значение CalcAge, и метод будет по-прежнему хорошо работать без изменения кода его вызова. Скрытие кода, выполняющего метод, называется инкапсуляцией.
В классе Persons создается открытый метод, возвращающий полное имя, а также закрытая функция для расчета возраста.
Практическое задание
Для добавления метода в класс
Откройте проект Persons, созданный на предыдущем занятии. Если он не был сохранен, сначала необходимо вернуться к предыдущему разделу Добавление свойств в класс и завершить описанные там действия.
В Обозревателе решений выберите Persons.vb, а затем в меню Вид выберите пункт Код.
Добавьте следующий код после процедур свойств.
Public Function FullName() As String If middleNameValue <> "" Then FullName = firstNameValue & " " & middleNameValue & " " _ & lastNameValue Else FullName = firstNameValue & " " & lastNameValue End If End Function
Private Function CalcAge(ByVal year As Integer) As Integer CalcAge = My.Computer.Clock.LocalTime.Year - year End Function
Измените код в процедуре свойства Age, чтобы использовать закрытую функцию.
ReadOnly Property Age() As String Get ' Age = My.Computer.Clock.LocalTime.Year - birthDateValue Age = CalcAge(birthYearValue) End Get End Property
В меню Файл выберите команду Сохранить все, чтобы сохранить работу.
Следующие действия
На этом занятии было показано, как добавлять открытые и закрытые методы в класс. За дополнительными сведениями о методах обратитесь к разделу Подробное рассмотрение. Создание нескольких версий одного метода путем перегрузки или перейдите к следующему занятию, чтобы научиться добавлять к классу события.
Следующее занятие: Добавление событий в класс.
См. также
Задачи
Другие ресурсы
Программирование с применением объектов. Использование классов