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 de Ejemplo
// Import the System namespace for basic functionality
using System;
public class HouseAndPersonDemo
{
// Define the Door class
public class Door
{
// Private attribute to store the color of the door
private string color;
// Constructor to initialize the door's color
public Door(string doorColor)
{
color = doorColor;
}
// Getter method to retrieve the color of the door
public string GetColor()
{
return color;
}
// Setter method to set the color of the door
public void SetColor(string doorColor)
{
color = doorColor;
}
// Method to show data about the door
public void ShowData()
{
// Display the color of the door
Console.WriteLine($"I am a door, my color is {color}");
}
}
// Define the House class
public class House
{
// Private attribute to store the area of the house
private int area;
// Private attribute to store the door of the house
private Door door;
// Constructor to initialize the house's area and create a door for the house
public House(int houseArea, string doorColor)
{
area = houseArea;
door = new Door(doorColor); // Create a door with the given color
}
// Getter method to retrieve the area of the house
public int GetArea()
{
return area;
}
// Setter method to set the area of the house
public void SetArea(int houseArea)
{
area = houseArea;
}
// Method to show data about the house
public void ShowData()
{
// Display the area of the house
Console.WriteLine($"I am a house, my area is {area} m2");
}
// Method to get the door of the house
public Door GetDoor()
{
return door;
}
}
// Define the SmallApartment class, which is a subclass of House
public class SmallApartment : House
{
// Constructor for SmallApartment, which automatically sets the area to 50 m2
public SmallApartment(string doorColor) : base(50, doorColor) { }
}
// Define the Person class
public class Person
{
// Private attribute to store the name of the person
private string name;
// Private attribute to store the house of the person
private House house;
// Constructor to initialize the person's name and house
public Person(string personName, House personHouse)
{
name = personName;
house = personHouse;
}
// Method to show data about the person and their house
public void ShowData()
{
// Display the person's name
Console.WriteLine($"My name is {name}");
// Show data about the house
house.ShowData();
// Show data about the door of the house
house.GetDoor().ShowData();
}
}
// Define the Main method to test the program
public static void Main()
{
// Create a SmallApartment with a door color of "brown"
SmallApartment apartment = new SmallApartment("brown");
// Create a person named "John" and assign them the small apartment
Person person = new Person("John", apartment);
// Show the data of the person, their house, and the door
person.ShowData();
}
}