Основы VB.NET Урок 5. Методы классов в VB.NET
Будем двигаться с нашим классом дальше. На прошлом занятии мы добавили свойства, на этом добавим методы.
Что такое методы? Это те же самые функции, только принадлежат они классам. Есть просто функции, а есть функции, которые что-то делают с переменным класса и принадлежат классу. Именно последние и называются методами. Отметим сразу, что методы имеют доступ ко всему классу, в котором они расположены - т. е. модификаторы доступа (private, public и т. д.) не имеют для методов класса никакого значения.
Давайте в наш класс Worker добавим метод для увеличения возраста рабочего на единицу. Понятно, что вместо такого метода можно использовать просто конструкцию вида:
wrk1.age=wrk1.age+1
так что наш пример выглядит довольно условным. Но тем не менеее добавим его. Ниже приводится код для метода:
Class Worker
'Метод IncAge
Public Sub IncAge()
ageValue = ageValue + 1
End Sub
...
End Class
После этого метод можно вызывать для экземпляров класса. Вот так можно испытать добавленный метод в тестовом классе:
Class Test
Public Shared Sub Main()
Dim wrk1 As New Worker()
wrk1.age = 23
Console.WriteLine("Возраст: {0}", wrk1.age)
wrk1.IncAge() 'Вызываем метод
Console.WriteLine("Возраст: {0}", wrk1.age)
End Sub
End Class
Разумеется, в результате работы наша программа в первой строчке должна выдать 23, а второй - 24.
Методы могут иметь параметры, и могут возвращать некоторое значение. Параметры методов, как и следовало ожидать, разделяются запятыми. Добавим в наш класс Worker еще один метод, который увеличивает зарплату. Так как зарплата может быть увеличена на разную величину, то наш метод будет с параметром:
Class Worker
'Добавляем свойство salary (Зарплата)
Property salary() As Integer
'Чтение свойства
Get
Return salaryValue
End Get
'Запись свойства
Set(ByVal Value As Integer)
salaryValue = Value
End Set
End Property
'Переменная для хранения свойства
Private salaryValue As Integer
'Метод для увеличения зарплаты
Public Sub IncSalary(ByVal inc As Integer)
salaryValue = salaryValue + inc
End Sub
...
End Class
Методы могут возвращать значения. Давайте добавим в класс еще один метод для увеличения зарплаты - IncSalary2. Действовать он будет аналогично методу IncSalary, только с некоторым ограничением. А именно, зарплата будет увеличена на значение передаваемого параметра, но при этом максимальная величина зарплаты не должна быть больше 100. Т. е. если, скажем, зарплата равна 90, а мы увеличиваем ее методом IncSalary2 на 20, то она станет не 110, а 100. В качестве значения наш новый метод IncSalary возвратит новое значение зарплаты. Вот его текст:
...
Public Function IncSalary2(ByVal inc As Integer)
If salaryValue + inc > 100 Then
salaryValue = 100 'Максимальная зарплата
Else
salaryValue = salaryValue + inc
End If
Return salaryValue
End Function
...
Как вы видите, так как возвращается некоторое значение (последством return), то мы используем слово Function вместо слова Sub.
Тестовый класс можно поменять следующим образом:
Class Test
Public Shared Sub Main()
Dim wrk1 As New Worker()
wrk1.salary = 70
Console.WriteLine("Зарплата: {0}", wrk1.salary)
Console.WriteLine("Новая зарплата: {0}", wrk1.IncSalary2(20))
Console.WriteLine("Новая зарплата: {0}", wrk1.IncSalary2(20))
End Sub
End Class
Как видно и приведенного текста, мы можем писать вызов метода IncSalary2 прямо внутри Console.WriteLine (так как метод возвращает значение). Программа покажет в трех строчках значения для зарплаты 70, 90 и 100 (максимальная зарплата).
С этим уроком все!
|