воскресенье, 29 августа 2010 г.

Создание методов


В пятницу я рассмотрел вопросы защиты свойств (с помощью соответствующих проверок) и создания и использования объектов. У нас уже есть простейший класс, который обладает двумя свойствами и мы научились их заполнять и использоваться в своей работе с объектами. Но класс без методов смотрится как-то убого. Поэтому – сегодня мы создадим пару простых методов для нашего класса.
Так как мы создаем класс, описывающий прямоугольник (самое первое, что пришло мне в голову, и легко для обучения). У него есть два свойства – ширина и длина. А что еще есть у прямоугольника, что можно рассчитать на основе этих двух свойств? Можно найти периметр и площадь прямоугольника. Поэтому – давайте реализуем два метода, которые будут рассчитывать эти параметры.
Напомню для тех, кто, может быть, забыл. Периметр – это сумма длин сторон прямоугольника (то есть ширина плюс высота плюс ширина плюс высота). Площадь – это часть поверхности, которая ограничена замкнутым контуром, в нашем случае – это поверхность прямоугольника (ширину умножить на длину).
Итак, мы сейчас вспомнили, что такое периметр и площадь у прямоугольника, вспомнили, по каким формулам будет их рассчитывать. Теперь давайте разберемся в том, как создавать методы. Как уже говорилось, методы – это процедуры (не возвращают параметры) и функции (возвращают). В 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

В дальнейшем мы его усложним конечно. Но сегодня мы уже научились создавать простые методы (правда – только функции, но ничего, до всего доберемся). В следующий раз попробуем создать уже нормальный методы.

Комментариев нет:

Отправить комментарий