Omitir navegación.
Inicio

Práctica (Contenedores de Objetos)

Imagen de SebaMinguez
  • Crear una clase base que represente una Figura Geométrica
  • Agregar métodos para calcular el área y el perímetro
  • Crear subclases de dicha clase que representen figuras concretas. Ej: Cuadrado, Circulo, triángulo
  • Sustituir los métodos área y perímetro para cada caso particular.
  • Crear dentro de un método main objetos de cada tipo concreto utilizando referencias de tipo FigurasGeometricas. Luego invocar los métodos definidos anteriormente.

Solución propuesta: En FigurasGeometricas.java

public abstract class FiguraGeometrica {
	abstract double area();
	abstract double perimetro();
}

Luego en Circulo.java

public class Circulo extends FiguraGeometrica{
	private double radio;
 
	public Circulo(double radio){
		this.radio=radio;
	}
	public double area(){
		return 3.14 * (radio*radio); 
	}
	public double perimetro(){
		return 3.14 * (radio * 2);
	}
	public void setRadio(double radio){
		this.radio=radio;
	}
	public double getRadio(){
		return radio;
	}
}

En Cuadrado.java

public class Cuadrado extends FiguraGeometrica{
	private double lado;
 
	public Cuadrado(double lado){
		this.lado=lado;
	}
	public double area(){
		return lado*lado;
	}
	public double perimetro(){
		return lado*4;
	}
	public void setLado(double lado){
		this.lado=lado;
	}
	public double getLado(){
		return lado;
	}
}

Rectangulo.java

public class Rectangulo extends FiguraGeometrica{
	private double lado1;
	private double lado2;
 
	public Rectangulo (double lado1, double lado2){
		this.lado1=lado1;
		this.lado2=lado2;
	}
	public double area(){
		return lado1*lado2;
	}
	public double perimetro(){
		return (lado1*2) + (lado2*2);
	}
	public void setLado1(double lado1){
		this.lado1=lado1;
	}
	public void setLado2(double lado2){
		this.lado2=lado2;
	}
	public double getLado1(){
		return lado1;
	}
	public double getLado2(){
		return lado2;
	}
}

Por ultimo el main para testear todo y cumplir el ultimo punto dentro de Figuras.java

public class Figuras {
	public static void main(String[] args) {
		Cuadrado  c1 = new Cuadrado(2);
		System.out.println(c1.area());
		System.out.println(c1.perimetro());
		c1.setLado(5); //cambiamos el valor del lado
		System.out.println("Ahora el área es " + c1.area());
		System.out.println("Ahora el perímetro es " + c1.perimetro());
 
		Circulo cir1 = new Circulo(4);
		System.out.println("El área del circulo es " + cir1.area());
		System.out.println("El perímetro del circulo es " + cir1.perimetro());
 
		FiguraGeometrica f1 = new Circulo (10); //con referencia de tipo FiguraGeometrica
		System.out.println("El área de la Figura (Circulo) es " + f1.area());
 
		FiguraGeometrica rec1 = new Rectangulo (2, 3.6);
		System.out.println("El área del rectángulo es " + rec1.area());
		System.out.println("El perímetro del rectángulo es " + rec1.perimetro());
 
		Rectangulo rec1b = (Rectangulo)rec1;
		System.out.println(rec1b.getLado1()); //DownCast para poder utilizar un metodo propio
		System.out.println(rec1b.getLado2());
	}
}

Trackback URL for "Práctica (Contenedores de Objetos)"

http://www.odiolasllaves.com.ar/trackback/38