Ejercicio
tabla + coffetable + leg
Objetivo
Amplíe el ejemplo de las tablas y las mesas de centro, para agregar una clase "Leg" con un método "ShowData", que escribirá "I am a leg" y luego mostrará los datos de la tabla a la que pertenece.
Elija una tabla en el ejemplo, agréguele una pata y pídale a esa pierna que muestre sus datos.
Código
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Namespace Tables
Class CoffeeTable
Inherits Table
Public Sub New(ByVal tableWidth As Integer, ByVal tableHeight As Integer)
MyBase.New(tableWidth, tableHeight)
End Sub
Public Overrides Sub ShowData()
Console.WriteLine("Width: {0}, Height: {1}", width, height)
Console.WriteLine("(Coffee table)")
End Sub
End Class
End Namespace
Namespace Tables
Class Leg
Private myTable As Table
Public Sub New()
End Sub
Public Sub SetTable(ByVal t As Table)
myTable = t
End Sub
Public Sub ShowData()
Console.WriteLine("I am a leg")
myTable.ShowData()
End Sub
End Class
End Namespace
Namespace Tables
Class Table
Protected width, height As Integer
Protected myLeg As Leg
Public Sub New(ByVal tableWidth As Integer, ByVal tableHeight As Integer)
width = tableWidth
height = tableHeight
End Sub
Public Sub AddLeg(ByVal l As Leg)
myLeg = l
myLeg.SetTable(Me)
End Sub
Public Overridable Sub ShowData()
Console.WriteLine("Width: {0}, Height: {1}", width, height)
End Sub
End Class
End Namespace
Namespace Tables
Class TestTable
Private Shared Sub Main(ByVal args As String())
Dim t As Table = New Table(80, 120)
Dim l As Leg = New Leg()
t.AddLeg(l)
l.ShowData()
Console.WriteLine()
Dim tableList As Table() = New Table(9) {}
Dim random As Random = New Random()
For i As Integer = 0 To tableList.Length - 1
If i < tableList.Length / 2 Then
tableList(i) = New Table(random.[Next](50, 201), random.[Next](50, 201))
Else
tableList(i) = New CoffeeTable(random.[Next](40, 121), random.[Next](40, 121))
End If
Next
For i As Integer = 0 To tableList.Length - 1
tableList(i).ShowData()
Next
Console.ReadLine()
End Sub
End Class
End Namespace