В пятницу я рассмотрел вопросы защиты свойств (с помощью соответствующих проверок) и создания и использования объектов. У нас уже есть простейший класс, который обладает двумя свойствами и мы научились их заполнять и использоваться в своей работе с объектами. Но класс без методов смотрится как-то убого. Поэтому – сегодня мы создадим пару простых методов для нашего класса.
Так как мы создаем класс, описывающий прямоугольник (самое первое, что пришло мне в голову, и легко для обучения). У него есть два свойства – ширина и длина. А что еще есть у прямоугольника, что можно рассчитать на основе этих двух свойств? Можно найти периметр и площадь прямоугольника. Поэтому – давайте реализуем два метода, которые будут рассчитывать эти параметры.
Напомню для тех, кто, может быть, забыл. Периметр – это сумма длин сторон прямоугольника (то есть ширина плюс высота плюс ширина плюс высота). Площадь – это часть поверхности, которая ограничена замкнутым контуром, в нашем случае – это поверхность прямоугольника (ширину умножить на длину).
Итак, мы сейчас вспомнили, что такое периметр и площадь у прямоугольника, вспомнили, по каким формулам будет их рассчитывать. Теперь давайте разберемся в том, как создавать методы. Как уже говорилось, методы – это процедуры (не возвращают параметры) и функции (возвращают). В Visual Basic.NET процедуры обозначаются ключевым словом SUB, а функции – с помощью слова FUNCTION.
Если мы хотим, чтобы у всех вызывающих наш класс, был доступ к методам – то перед объявлением его необходимо вставлять слово PUBLIC. Пожалуй, надо будет отдельно поговорить о таких словах.
Я предлагаю создать две процедуры. Они будут подсчитывать периметр (perimetr) и площать (ploshad), но не будут возвращать значения. Для того, чтобы можно было просмотреть величины площади и периметра – мы создадим отдельную функцию, назовем ее Vivod. В качестве параметра мы будет посылать имя метода, результат которого необходимо вывести. Давайте попробуем это запрограммировать:
Я сделал два очень простых метода (названия уже показывал выше). Пока – все методы являются функциями, причем – просто супер простыми. В дальнейшем я их усложню. А пока – вот что у меня получилось:
Public Function Perimetr() As Integer
Dim Per As Integer
Per = (Dlin + Shir) * 2
Return Per
End Function
Public Function Ploshad() As Integer
Dim Pl As Integer
Pl = Dlin * Shir
Return Pl
End Function
Чтобы использовать эти методы, к ним надо соответствующим образом обращаться: имя объекта точка имя метода (интерфейс программы оставьте абсолютно таким же, какой он был в прошлый раз). Для обработчика кнопки вставьте следующий код:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Per As New Class1
Per.Shir = Convert.ToInt32(TextBox1.Text)
Per.Dlin = Convert.ToInt32(TextBox2.Text)
Label1.Text = "Ширина = " + Per.Shir.ToString + ". Длина = " + Per.Dlin.ToString
MsgBox("Периметр: " + Per.Perimetr.ToString)
MsgBox("Площадь: " + Per.Ploshad.ToString)
End Sub
А сам класс у меня пока получился таким:
Public Class Class1
Private pShir, pDlin As Integer
Public Property Shir() As Integer
Get
Return pShir
End Get
Set(ByVal value As Integer)
If value > 0 And value < 200 Then
pShir = value
Else
MsgBox("Вы неправильно задали величину ширины прямоугольника.")
pShir = 100
End If
End Set
End Property
Public Property Dlin() As Integer
Get
Return pDlin
End Get
Set(ByVal value As Integer)
If value > 0 And value < 300 Then
pDlin = value
Else
MsgBox("Вы неправильно задали величину длины прямоугольника.")
pDlin = 150
End If
End Set
End Property
Public Function Perimetr() As Integer
Dim Per As Integer
Per = (Dlin + Shir) * 2
Return Per
End Function
Public Function Ploshad() As Integer
Dim Pl As Integer
Pl = Dlin * Shir
Return Pl
End Function
End Class
В дальнейшем мы его усложним конечно. Но сегодня мы уже научились создавать простые методы (правда – только функции, но ничего, до всего доберемся). В следующий раз попробуем создать уже нормальный методы.
Комментариев нет:
Отправить комментарий