Objective
Create a class "House", with an attribute "area", a constructor that sets its value and a method "ShowData" to display "I am a house, my area is 200 m2" (instead of 200, it will show the real surface). Include getters an setters for the area, too.
The "House" will contain a door. Each door will have an attribute "color" (a string), and a method "ShowData" wich will display "I am a door, my color is brown" (or whatever color it really is). Include a getter and a setter. Also, create a "GetDoor" in the house.
A "SmallApartment" is a subclass of House, with a preset area of 50 m2.
Also create a class Person, with a name (string). Each person will have a house. The method "ShowData" for a person will display his/her name, show the data of his/her house and the data of the door of that house.
Write a Main to create a SmallApartment, a person to live in it, and to show the data of the person.
Write Your C# Exercise
C# Exercise Example
// 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();
}
}