Construct Class by Class Combination
Imports System Public Class MainClass Shared Sub Main(ByVal args As String()) Dim circle As Circle circle = New Circle(37, 43, 2.5) ' instantiate Circle Console.WriteLine( "X coordinate is " & circle.X & vbCrLf & _ "Y coordinate is " & circle.Y & vbCrLf & "Radius is " & _ circle.Radius ) circle.X = 2 circle.Y = 2 circle.Radius = 4.25 Console.WriteLine("The new location and radius of circle are " & _ vbCrLf & circle.ToString() ) Console.WriteLine( "Diameter is " & _ String.Format("{0:F}", circle.Diameter()) ) Console.WriteLine("Circumference is " & _ String.Format("{0:F}", circle.Circumference()) ) Console.WriteLine( "Area is " & String.Format("{0:F}", circle.Area()) ) End Sub End Class ' Circle class that inherits from class Point. Public Class Circle Inherits Point ' Circle Inherits from class Point Private mRadius As Double ' Circle's radius ' default constructor Public Sub New() ' implicit call to Point constructor occurs here Radius = 0 End Sub ' New ' constructor Public Sub New(ByVal xValue As Integer, _ ByVal yValue As Integer, ByVal radiusValue As Double) ' implicit call to Point constructor occurs here X = xValue Y = yValue Radius = radiusValue End Sub ' New ' property Radius Public Property Radius() As Double Get Return mRadius End Get Set(ByVal radiusValue As Double) If radiusValue > 0 Then mRadius = radiusValue End If End Set End Property ' Radius ' calculate Circle diameter Public Function Diameter() As Double Return mRadius * 2 End Function ' Diameter ' calculate Circle circumference Public Function Circumference() As Double Return Math.PI * Diameter() End Function ' Circumference ' calculate Circle area Public Function Area() As Double Return Math.PI * mRadius ^ 2 End Function ' Area ' return String representation of Circle Public Overrides Function ToString() As String Return "Center = " & "[" & X & ", " & Y & "]" & _ "; Radius = " & mRadius End Function ' ToString End Class ' Circle ' Point class represents an x-y coordinate pair. Public Class Point ' implicitly Inherits Object ' point coordinate Private mX, mY As Integer ' default constructor Public Sub New() ' implicit call to Object constructor occurs here X = 0 Y = 0 End Sub ' New ' constructor Public Sub New(ByVal xValue As Integer, _ ByVal yValue As Integer) ' implicit call to Object constructor occurs here X = xValue Y = yValue End Sub ' New ' property X Public Property X() As Integer Get Return mX End Get Set(ByVal value As Integer) mX = value End Set End Property ' X ' property Y Public Property Y() As Integer Get Return mY End Get Set(ByVal value As Integer) mY = value End Set End Property ' Y ' return String representation of Point Public Overrides Function ToString() As String Return "[" & mX & ", " & mY & "]" End Function ' ToString End Class ' Point
1. | Four Level Hierachy | ||
2. | Property Shadow during Inheritance | ||
3. | Class Inheritance Demo |