Объекты совсем не обязательно объявлять
Private Sub Вычисляем_периметр()
Периметр = 2 * (Длина + Ширина)
End Sub
Private Function Площадь_забора() As Integer
Вычисляем_периметр()
Return Периметр * Высота_забора
End Function
Public Function Расход_краски_на_забор() As Integer
Return Расход_краски_на_кв_м * Площадь_забора()
End Function
End Class
Пояснения: Объекты совсем не обязательно объявлять и создавать в стандартном модуле, как мы это делали раньше. Сейчас, например, мы сделали это в модуле формы. Также совсем не обязательно объявлять и создавать их одним оператором, как мы делали раньше:
Dim Участок1 As New Участок
Можно сначала объявить (как мы сейчас и сделали):
Dim Участок1, Участок2 As Участок
а потом в удобный момент создать:
Участок1 = New Участок 'Из класса рождается объект
Заглянем в код класса. Мы видим там 5 переменных, объявленных словом Public. Следовательно, они видны снаружи объекта. Значит, это поля объекта. К тому же слово Public без употребления других запретительных слов (о них позже) допускает свободное изменение значений поля снаружи объекта. Следовательно, это поля для чтения-записи. Плачет наш принцип инкапсуляции! Зачем мы в нашей конкретной задаче сделали их таковыми? Затем, чтобы пользователь мог свободно задавать их значения из текстовых полей. Ничего не попишешь – таково требование задачи.
Внутренняя механика объекта определяется его процедурами и функциями. Единственной скромной задачей, которую мы поставили перед объектом, является подсчет расхода краски на забор вокруг участка. Для этого нам вполне хватило бы одной функции, но мы глядим вперед и вместо одной функции написали две функции и одну процедуру. Пояснения начинаю с геометрии.
Участки прямоугольные и не соприкасаются, значит длина забора вокруг участка равна периметру участка, а это две ширины плюс две длины. Площадь забора равна периметру, умноженному на высоту забора. Расход краски на весь забор равен ее расходу на 1 квадратный метр, умноженному на площадь забора.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий