Lösung zur Übungsaufgabe „Get the BASICs, Visual Basic für Einsteiger und Umsteiger“, Teil 4
Aufgabe
Programmieren Sie eine Klasse "Rechteck"
- welche die Höhe und Breite eines Rechtecks (als Integer) verwaltet.
- Implementieren Sie mehrere Konstruktoren.
- "Leeres" Rechteck initialisieren
- "Quadrat" initialisieren
- "Rechteck" mit Breite und Höhe initialisieren
- Schreiben Sie Properties für Breite und Höhe.
- Schreiben Sie eine Methode "Zeichnen" welche das Rechteck mit Console.WriteLine() darstellt.
Lösung
Option Strict On
Option Explicit On
Module Module1
Sub Main()
Dim meinRechteck As New Rechteck
meinRechteck.Hoehe = 5
meinRechteck.Breite = 3
' Rechteck zeichnen
meinRechteck.Zeichnen()
' Leerzeichen als Trenner ausgeben
Console.WriteLine()
Console.WriteLine()
Dim meinZweitesRechteck As New Rechteck(9, 4)
' Rechteck zeichnen
meinZweitesRechteck.Zeichnen()
' Leerzeichen als Trenner ausgeben
Console.WriteLine()
Console.WriteLine()
Dim meinQuadrat As New Rechteck(5)
' Quadrat zeichnen
meinQuadrat.Zeichnen()
' Leerzeichen als Trenner ausgeben
Console.WriteLine()
Console.WriteLine()
End Sub
Public Class Rechteck
#Region "Private Variablen"
Private _breite As Integer
Private _hoehe As Integer
#End Region
#Region "Konstruktoren"
Public Sub New()
_breite = 0
_hoehe = 0
End Sub
Public Sub New(ByVal Breite As Integer, ByVal Hoehe As Integer)
_breite = Breite
_hoehe = Hoehe
End Sub
Public Sub New(ByVal Seitenlaenge As Integer)
_breite = Seitenlaenge
_hoehe = Seitenlaenge
End Sub
#End Region
#Region "Properties"
Public Property Breite() As Integer
Get
Return _breite
End Get
Set(ByVal value As Integer)
If value >= 0 Then
' es düften keine negativen Werte für
' die Breite eingegeben werden
_breite = value
End If
End Set
End Property
Public Property Hoehe() As Integer
Get
Return _hoehe
End Get
Set(ByVal value As Integer)
If value >= 0 Then
' es düften keine negativen Werte für
' die Höhe eingegeben werden
_hoehe = value
End If
End Set
End Property
#End Region
#Region "Methoden"
''' <summary>
''' Zeichnet das Rechteck.
''' </summary>
''' <remarks></remarks>
Public Sub Zeichnen()
' Warnung ausgeben, wenn die Kantenlänge 0 ist
If _hoehe = 0 OrElse _breite = 0 Then
Console.WriteLine("Ein Rechteck mit einer Kantenlänge von 0 kann nicht gezeichnet werden.")
' Rechteck kann nicht gezeichnet werden
' --> die Methode Zeichnen beenden
Return
End If
' Schleife für die Höhe des Rechtecks
' _hoehe - 1 --> da die Schleife von 0 zu zählen beginnt
For j As Integer = 0 To _hoehe - 1
' Schleife für die Breite des Rechtecks
' _breite - 1 --> da die Schleife von 0 zu zählen beginnt
For i As Integer = 0 To _breite - 1
If j = 0 OrElse j = _hoehe - 1 OrElse i = 0 OrElse i = _breite - 1 Then
' hier werden die Rände des Rechtecks gezeichnet
Console.Write("*")
Else
' hier das Innere des Rechtecks
Console.Write(" ")
End If
Next ' Ende von i
' eine neue Zeile für die nächste
' Zeile des Quadrats ausgeben
Console.WriteLine()
Next ' Ende von j
End Sub
#End Region
End Class
End Module