Ejercicio
House
Objetivo
Cree una clase "House", con un atributo "area", un constructor que establezca su valor y un método "ShowData" para mostrar "Soy una casa, mi área es de 200 m2" (en lugar de 200, mostrará la superficie real). Incluya getters y setters para el área, también.
La "Casa" contendrá una puerta. Cada puerta tendrá un atributo "color" (una cadena), y un método "ShowData" que mostrará "Soy una puerta, mi color es marrón" (o del color que sea realmente). Incluye un getter y un setter. Además, crea un "GetDoor" en la casa.
Un "SmallApartment" es una subclase de casa, con un área preestablecida de 50 m2.
Cree también una clase Person, con un nombre (cadena). Cada persona tendrá una casa. El método "ShowData" para una persona mostrará su nombre, mostrará los datos de su casa y los datos de la puerta de esa casa.
Escribe un Main para crear un SmallApartment, una persona para vivir en él, y para mostrar los datos de la persona.
Código
Imports System
Namespace Houses
Class House
Protected area As Integer
Protected door As Door
Public Sub New(ByVal area As Integer)
Me.area = area
door = New Door()
End Sub
Public Property Area As Integer
Get
Return area
End Get
Set(ByVal value As Integer)
area = value
End Set
End Property
Public Property Door As Door
Get
Return door
End Get
Set(ByVal value As Door)
door = value
End Set
End Property
Public Overridable Sub ShowData()
Console.WriteLine("I am a house, my area is {0} m2.", area)
End Sub
End Class
Class Door
Protected color As String
Public Sub New()
color = "Brown"
End Sub
Public Sub New(ByVal color As String)
Me.color = color
End Sub
Public Property Color As String
Get
Return color
End Get
Set(ByVal value As String)
color = value
End Set
End Property
Public Sub ShowData()
Console.WriteLine("I am a door, my color is {0}.", color)
End Sub
End Class
Class SmallApartment
Inherits House
Public Sub New()
MyBase.New(50)
End Sub
Public Overrides Sub ShowData()
Console.WriteLine("I am an apartment, my area is " & area & " m2")
End Sub
End Class
Class Person
Protected name As String
Protected house As House
Public Sub New()
name = "Juan"
house = New House(150)
End Sub
Public Sub New(ByVal name As String, ByVal house As House)
Me.name = name
Me.house = house
End Sub
Public Property Name As String
Get
Return name
End Get
Set(ByVal value As String)
name = value
End Set
End Property
Public Property House As House
Get
Return house
End Get
Set(ByVal value As House)
house = value
End Set
End Property
Public Sub ShowData()
Console.WriteLine("My name is {0}.", name)
house.ShowData()
house.Door.ShowData()
End Sub
End Class
Class TestHouse
Private Shared Sub Main()
Dim debug As Boolean = True
Dim mySmallApartament As SmallApartment = New SmallApartment()
Dim myPerson As Person = New Person()
myPerson.Name = "Juan"
myPerson.House = mySmallApartament
myPerson.ShowData()
If debug Then Console.ReadLine()
End Sub
End Class
End Namespace