Table + coffetable + leg Java Exercise - Java Programming Course

 Exercise

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.

 Example Code

package Tables;
public class CoffeeTable extends Table
{
	public CoffeeTable(int tableWidth, int tableHeight)
	{
		super(tableWidth, tableHeight);
	}

	@Override
	public void ShowData()
	{
		System.out.printf("Width: %1$s, Height: %2$s" + "\r\n", width, height);
		System.out.println("(Coffee table)");
	}
}

package Tables;
public class Leg
{
	private Table myTable;

	public Leg()
	{

	}

	public final void SetTable(Table t)
	{
		myTable = t;
	}

	public final void ShowData()
	{
		System.out.println("I am a leg");
		myTable.ShowData();
	}
}

package Tables;
public class Table
{
	protected int width, height;
	protected Leg myLeg;

	public Table(int tableWidth, int tableHeight)
	{
		width = tableWidth;
		height = tableHeight;
	}

	public final void AddLeg(Leg l)
	{
		myLeg = l;
		myLeg.SetTable(this);
	}

	public void ShowData()
	{
		System.out.printf("Width: %1$s, Height: %2$s" + "\r\n", width, height);
	}
}

package Tables;
import java.util.*;

public class TestTable
{
	public 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();

		System.out.println();

		// 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.nextInt(50, 201), random.nextInt(50, 201));
			}
			else
			{
				tableList[i] = new CoffeeTable(random.nextInt(40, 121), random.nextInt(40, 121));
			}
		}

		for (int i = 0; i < tableList.length; i++)
		{
			tableList[i].ShowData();
		}

		// TODO: To be removed
		new Scanner(System.in).nextLine();
	}
}

More Java 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...
 House
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 m...
 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
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 ...
 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 © 2024 All rights reserved.  Legal Conditions.