7.06 - Table + coffetable + leg

Objetive
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.


Resolution
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tables
{
    class CoffeeTable : Table
    {
        public CoffeeTable(int tableWidth, int tableHeight)
            : base (tableWidth, tableHeight)
        {
        }

        public override void ShowData()
        {
            Console.WriteLine("Width: {0}, Height: {1}", width, height);
            Console.WriteLine("(Coffee table)");
        }
    }
}

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Tables { class Leg { Table myTable; public Leg() { } public void SetTable(Table t) { myTable = t; } public void ShowData() { Console.WriteLine("I am a leg"); myTable.ShowData(); } } }
using System; namespace Tables { class Table { protected int width, height; protected Leg myLeg; public Table(int tableWidth, int tableHeight) { width = tableWidth; height = tableHeight; } public void AddLeg(Leg l) { myLeg = l; myLeg.SetTable(this); } public virtual void ShowData() { Console.WriteLine("Width: {0}, Height: {1}",width, height); } } }
using System; namespace Tables { class TestTable { static void Main(string[] args) { // Using as a single table: Table t = new Table(80,120); Leg l = new Leg(); t.AddLeg(l); l.ShowData(); Console.WriteLine(); // Using as array: Table[] tableList = new Table[10]; Random random = new Random(); for (int i = 0; i < tableList.Length ;i++) { if (i < tableList.Length / 2) tableList[i] = new Table( random.Next(50, 201), random.Next(50, 201)); else tableList[i] = new CoffeeTable( random.Next(40, 121), random.Next(40, 121)); } for (int i = 0; i < tableList.Length; i++) { tableList[i].ShowData(); } // TODO: To be removed Console.ReadLine(); } } }

Popular Posts