House Ejercicio VB.Net - Curso de Programación Visual Basic

 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

Más ejercicios Visual Basic (VB.Net) de POO Más sobre Clases

 Matriz de objetos: tabla
Cree una clase denominada "Table". Debe tener un constructor, indicando el ancho y alto de la placa. Tendrá un método "ShowData" que escribirá en la p...
 Tabla + coffetable + array
Cree un proyecto denominado "Tablas2", basado en el proyecto "Tablas". En él, cree una clase "CoffeeTable" que herede de "Table". Su método "ShowDa...
 Encriptador
Cree una clase "Encrypter" para cifrar y descifrar texto. Tendrá un método "Encrypt", que recibirá una cadena y devolverá otra cadena. Será un méto...
 Números complejos
Un número complejo tiene dos partes: la parte real y la parte imaginaria. En un número como a+bi (2-3i, por ejemplo) la parte real sería "a" (2) y la ...
 tabla + coffetable + leg
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 mostr...
 Catálogo
Cree el diagrama de clases y, a continuación, con Visual Studio, un proyecto y las clases correspondientes para una utilidad de catálogo: Podrá alm...
 Número aleatorio
Cree una clase RandomNumber, con tres métodos estáticos: - GetFloat devolverá un número entre 0 y 1 utilizando el siguiente algoritmo: semilla =...
 Texto a HTML
Crear una clase "TextToHTML", que debe ser capaz de convertir varios textos introducidos por el usuario en una secuencia HTML, como esta: Hola Soy...
 Clase ScreenText
Cree una clase ScreenText, para mostrar un texto determinado en coordenadas de pantalla especificadas. Debe tener un constructor que recibirá X, Y y l...
 Clase ComplexNumber mejorada
Mejore la clase "ComplexNumber", para que sobrecargue los operadores + y - para sumar y restar números....
 Punto 3D
Cree una clase "Point3D", para representar un punto en el espacio 3D, con coordenadas X, Y y Z. Debe contener los siguientes métodos: MoveTo, que c...
 Catálogo + Menú
Mejorar el programa Catálogo, de forma que "Principal" muestre un menú que permita introducir nuevos datos de cualquier tipo, así como visualizar todo...

Juan A. Ripoll - Tutoriales de Sistemas y Cursos de Programación© 2024 Todos los derechos reservados.  Condiciones legales.