Práctica (Contenedores de Objetos)

- 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
»
- Inicie sesión o regístrese para enviar comentarios
