House Java Exercise

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

package Houses;
import java.util.*;

public class House
{
	protected int area;
	protected Door door;

	public House(int area)
	{
		this.area = area;
		door = new Door();

	}
	public final int getArea()
	{
		return area;
	}
	public final void setArea(int value)
	{
		area = value;
	}
	public final Door getDoor()
	{
		return door;
	}
	public final void setDoor(Door value)
	{
		door = value;
	}

	public void ShowData()
	{
		System.out.printf("I am a house, my area is %1$s m2." + "\r\n", area);
	}
}

public class Door
{
	protected String color;

	public Door()
	{
		color = "Brown";
	}
	public Door(String color)
	{
		this.color = color;
	}

	public final String getColor()
	{
		return color;
	}
	public final void setColor(String value)
	{
		color = value;
	}

	public final void ShowData()
	{
		System.out.printf("I am a door, my color is %1$s." + "\r\n", color);
	}

}

public class SmallApartment extends House
{
	public SmallApartment()
	{
		super(50);

	}
	@Override
	public void ShowData()
	{
		System.out.println("I am an apartment, my area is " + area + " m2");
	}
}

public class Person
{
	protected String name;
	protected House house;

	public Person()
	{
		name = "Juan";
		house = new House(150);
	}
	public Person(String name, House house)
	{
		this.name = name;
		this.house = house;
	}

	public final String getName()
	{
		return name;
	}
	public final void setName(String value)
	{
		name = value;
	}
	public final House getHouse()
	{
		return house;
	}
	public final void setHouse(House value)
	{
		house = value;
	}

	public final void ShowData()
	{
		System.out.printf("My name is %1$s." + "\r\n", name);
		house.ShowData();
		house.getDoor().ShowData();
	}
}

public class Main
{
	public static void main(String[] args)
	{
		boolean debug = true;

		SmallApartment mySmallApartament = new SmallApartment();
		Person myPerson = new Person();

		myPerson.setName("Juan");
		myPerson.setHouse(mySmallApartament);
		myPerson.ShowData();

		if (debug)
		{
			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...
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 ...
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....