ПОНЯТНО О Visual Basic NET (том 3)


Конструкторы родителя и наследников


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

Класс clsПрямоугольник:

Public Class clsПрямоугольник

    Public Длина As Integer

    Public Ширина As Integer

    Public Sub New()

        Debug.WriteLine("Сработал конструктор прямоугольника без параметров.")

    End Sub

 

    Public Sub New(ByVal Длина As Integer, ByVal Ширина As Integer)

        Me.Длина = Длина

        Me.Ширина = Ширина

        Debug.WriteLine("Сработал конструктор прямоугольника с параметрами.")

    End Sub

 

    Public Function Площадь() As Integer

        Return Длина * Ширина

    End Function

 

    Public Function Периметр() As Integer

        Return 2 * Длина + 2 * Ширина

    End Function

End Class

Класс clsПараллелепипед не изменился (см. 22.7).

Класс clsКоробка:

Public Class clsКоробка

    Inherits clsПрямоугольник

    Public Высота As Integer

 

    Public Sub New()

        Debug.WriteLine("Сработал конструктор коробки без параметров.")

    End Sub

 

    Public Sub New(ByVal Высота As Integer)

        MyBase.New(3, 2)

        Me.Высота = Высота

        Debug.WriteLine("Сработал конструктор коробки с параметром.")

    End Sub

 

    Public Function Площадь_поверхности() As Integer

        Return 2 * Площадь() + Периметр() * Высота

    End Function

End Class

Процедура для проверки работы классов с конструкторами:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim Прямоугольник1 As New clsПрямоугольник

        Прямоугольник1.Длина = 4

        Прямоугольник1.Ширина = 3

        Debug.WriteLine(Прямоугольник1.Площадь)




Начало  Назад  Вперед