Exercise
Table + Coffetable + Leg
Objective
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 display the data of the table to which it belongs.
Choose one table in the example, add a leg to it and ask that leg to display its data.
Write Your C# Exercise
C# Exercise Example
// Importing the System namespace for basic system functionalities like Console for input/output
using System;
public class Table
{
// Private fields for the width and height of the table
private double width;
private double height;
// Constructor to set the width and height of the table
public Table(double width, double height)
{
this.width = width; // Setting the width of the table
this.height = height; // Setting the height of the table
}
// Method to show the data of the table
public void ShowData()
{
Console.WriteLine($"Table width: {width} cm, height: {height} cm"); // Displaying the table's dimensions
}
// Getter for the width of the table
public double GetWidth()
{
return width; // Returning the width
}
// Getter for the height of the table
public double GetHeight()
{
return height; // Returning the height
}
}
public class CoffeeTable : Table
{
// Constructor for CoffeeTable, calling the base class constructor (Table)
public CoffeeTable(double width, double height) : base(width, height) { }
// Overriding the ShowData method to add "(Coffee table)" after displaying the dimensions
public new void ShowData()
{
base.ShowData(); // Displaying the table's dimensions
Console.WriteLine("(Coffee table)"); // Indicating that this is a coffee table
}
}
public class Leg
{
// Private field for the leg's position
private string position;
// Constructor to set the position of the leg
public Leg(string position)
{
this.position = position; // Setting the position of the leg (e.g., front-left, back-right)
}
// Method to show the data of the leg
public void ShowData(Table table)
{
Console.WriteLine($"I am a leg."); // Displaying that it is a leg
table.ShowData(); // Displaying the data of the table to which the leg belongs
}
}
public class Program
{
public static void Main()
{
// Creating a new CoffeeTable object with random sizes
CoffeeTable coffeeTable = new CoffeeTable(100, 60); // Width = 100 cm, Height = 60 cm
// Creating a new Leg object positioned at "front-left"
Leg leg = new Leg("front-left");
// Showing the data of the coffee table
coffeeTable.ShowData(); // Displaying the dimensions and the fact that it's a coffee table
// Asking the leg to display its data, which will also display the data of the table
leg.ShowData(coffeeTable); // Displaying that it's a leg and showing the coffee table's data
}
}