Вчера мы рассмотрели вопрос создания классов и свойств. Очень рекомендую еще раз повторить то, чтобы было рассмотрено в этой статье. Если вы не сможете создать класс – то как вы планируете работать с ними? И если вы не сможете создать ни одного свойства в классе, то можно сказать – классы вам будут и не нужны. Так что загляните туда.
Сегодня планирую также посвятить статью двум вопросам – это защита свойств (которые мы создавали вчера) и создание и использование объектов. Создание методов мы рассмотрим в одной из следующих статей. А сегодня мы уже создадим несколько объектов, и начнем с ними работать, так что читайте дальше.
Защита свойств.
Возможно я уже говорил о том, что в классах свойства – это не простые переменные, а значения, с которыми работают два метода – get и set. А если у нас имеются методы (как известно, методы – это процедуры и функции, то есть - действие), то можно этим действием частично управлять. Давайте посмотрим, как это сделать.
Приведу кусок вчерашнего кода:
Public Property Shir() As Integer
Get
Return pShir
End Get
Set(ByVal value As Integer)
pShir = value
End Set
End Property
Здесь мы видим лишь одну инструкцию между ключевыми словами Set … End Set. Но туда можно вставить и код, который бы проверял введенное значение по условиям. Если мы хотим сделать хороший (правильный) класс, то такая проверка нам будет нужна.
Итак. Защищать мы будем ширину нашего прямоугольника (Shir). Логично, что ширина у нас не может быть отрицательной. Поэтому такую проверку можно включить в объявление класса. А также – предположим, что мы хотим работать с прямоугольниками не очень большой ширины (до 200 единиц), и такую проверку включим в объявление. Если у нас вводимая переменная не будет удовлетворять нашим условиям – мы покажем предупреждение об этом и зададим значение по умолчанию. Для этого – замените код, который у вас был, на новый, который я представил ниже (не забываем – для ширины):
Set(ByVal value As Integer)
If value > 0 And value < 200 Then
pShir = value
Else
MsgBox("Вы неправильно задали величину ширины прямоугольника.")
pShir = 100
End If
End Set
Проверка проходит во второй строке. Условие по умолчанию ставится после предупреждения MsgBox. Для длины мы сделаем подобное условие, только максимальное значение изменим на 300 (и значение по умолчанию на 150). Итоговый код класса (он у нас небольшой, поэтому можно выложить все) представлен ниже:
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
End Class
Создание и использование объектов.
Объект – это такая же переменная, у которой тип данных – это наш созданный класс. Поэтому, объекты объявляются так же – с помощью слова Dim:
Dim Per As Class1
Но это мы только объявили переменную типа Class1. Для того, чтобы с ней работать, нужно ее еще проинициализировать. Делается это с помощью ключевого слова New:
Dim Per As Class1
Per = New Class1
У нас получилось две строчки кода. Для простоты, их можно записывать в одну – сразу и объявление объекта и его инициализация. Я делаю именно так:
Dim Per As New Class1
А теперь давайте попробуем что-нибудь записать и считать из наших свойств. Для того, чтобы обратиться к свойствам, нужно, во-первых, не забывать, что мы обращаемся к свойствам объекта. То есть – к свойствам переменной Per. К свойствам класса Class1 обращаться бессмысленно, так как это класс. Во-вторых, чтобы обратиться к свойству, нужно написать название этого свойства через точку с названием объекта. То есть – так:
Per.Shir
А теперь давайте сделаем небольшое приложение, которое будет просить пользователя ввести ширину и длину прямоугольника в соответствующие поля. После нажатия на кнопку – выведет эти значения в текстовое поле ниже. Для этого – киньте на форму два TextBox’a, кнопку и Label в самом низу. Для обработчика нажатия кнопки вставьте следующий код:
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
У меня вот что получилось:
Вот так просто можно обезопасить себя от неправильного ввода свойств. И, тоже просто, работать с объектами. В дальнейших статьях я рассмотрю создание методов (также на примере нашего прямоугольника). Так что – чаще посещайте блог.
Комментариев нет:
Отправить комментарий