House C# Exercise - C# Programming Course

 Exercise

House

 Objetive

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.

 Example Code

// 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();
    }
}

More C# Exercises of OOP More On Classes

 Array of objects: table
Create a class named "Table". It must have a constructor, indicating the width and height of the board. It will have a method "ShowData" which will wr...
 Table + coffetable + array
Create a project named "Tables2", based on the "Tables" project. In it, create a class "CoffeeTable" that inherits from "Table". Its method "ShowDa...
 Encrypter & Decrypter
Create a class "Encrypter" to encrypt and decrypt text. It will have a "Encrypt" method, which will receive a string and return another string. It ...
 Complex numbers
A complex number has two parts: the real part and the imaginary part. In a number such as a+bi (2-3i, for example) the real part would be "a" (2) and ...
 Table + coffetable + leg
Extend the example of the tables and the coffee tables, to add a class "Leg" with a method "ShowData", which will write "I am a leg" and then it will ...
 Catalog
Create the classes diagram and then, using Visual Studio, a project and the corresponding classes for a catalog utility: It will be able to store i...
 Random number
Create a class RandomNumber, with three static methods: - GetFloat will return a number between 0 and 1 using the following algorithm: seed = (s...
 Text to HTML
Create a class "TextToHTML", which must be able to convert several texts entered by the user into a HTML sequence, like this one: Hola Soy yo Ya ...
 Class ScreenText
Create a class ScreenText, to display a certain text in specified screen coordinates. It must have a constructor which will receive X, Y and the strin...
 Enhanced ComplexNumber class
Improve the "ComplexNumber" class, so that it overloads the operators + and - to add and subtract numbers....
 3D point
Create a class "Point3D", to represent a point in 3-D space, with coordinates X, Y and Z. It must contain the following methods: MoveTo, which will...
 Catalog + Menu
Improve the Catalog program, so that "Main" displays a menu to allow entering new data of any kind, as well as displaying all the data stored....

Juan A. Ripoll - Programming Tutorials and Courses © 2025 All rights reserved.  Legal Conditions.