House Curso de Programación Java

Lección:

Más sobre Clases


Ejercicio:

House 24


Objetivo:

Cree una clase "House", con un atributo "area", un constructor que establezca su valor y un método "ShowData" para mostrar "Soy una casa, mi área es de 200 m2" (en lugar de 200, mostrará la superficie real). Incluya getters y setters para el área, también.

La "Casa" contendrá una puerta. Cada puerta tendrá un atributo "color" (una cadena), y un método "ShowData" que mostrará "Soy una puerta, mi color es marrón" (o del color que sea realmente). Incluye un getter y un setter. Además, crea un "GetDoor" en la casa.

Un "SmallApartment" es una subclase de casa, con un área preestablecida de 50 m2.

Cree también una clase Person, con un nombre (cadena). Cada persona tendrá una casa. El método "ShowData" para una persona mostrará su nombre, mostrará los datos de su casa y los datos de la puerta de esa casa.

Escribe un Main para crear un SmallApartment, una persona para vivir en él, y para mostrar los datos de la persona.


Código:

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