Добавление методов в класс

Обновлен: Ноябрь 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 создается открытый метод, возвращающий полное имя, а также закрытая функция для расчета возраста.

Практическое задание

Для добавления метода в класс

  1. Откройте проект Persons, созданный на предыдущем занятии. Если он не был сохранен, сначала необходимо вернуться к предыдущему разделу Добавление свойств в класс и завершить описанные там действия.

  2. В Обозревателе решений выберите Persons.vb, а затем в меню Вид выберите пункт Код.

  3. Добавьте следующий код после процедур свойств.

    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
    
  4. Измените код в процедуре свойства Age, чтобы использовать закрытую функцию.

    ReadOnly Property Age() As String
        Get
            ' Age = My.Computer.Clock.LocalTime.Year - birthDateValue
            Age = CalcAge(birthYearValue)
        End Get
    End Property
    
  5. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Следующие действия

На этом занятии было показано, как добавлять открытые и закрытые методы в класс. За дополнительными сведениями о методах обратитесь к разделу Подробное рассмотрение. Создание нескольких версий одного метода путем перегрузки или перейдите к следующему занятию, чтобы научиться добавлять к классу события.

Следующее занятие: Добавление событий в класс.

См. также

Задачи

Добавление свойств в класс

Другие ресурсы

Программирование с применением объектов. Использование классов