Tengo 3 clases círculo, rectángulo y cuadrados
Quiero obtener los datos necesarios para cada una de las clases, y por encima de las creo por el usuario.
Esto significa que el usuario puede hacer lo que quiere nunca, por ejemplo 3 círculos , 2 rectángulos y 7 cuadrados . El número de formas que depende del usuario.
Entonces quiero guardarlos en una lista de unidades y llamar a mis clases de métodos, que son calculateArea y calculatePerimeter y mostrar perímetro y el área de ellos con su nombre.
¿Cómo puedo hacerlo?
Estos son mis clases
Circulo
public class Cricle {
private int radius;
public Cricle(int radius) {
this.radius = radius;
}
public double calculateArea()
{
return (radius*radius)*Math.PI;
}
public double calculatePerimeter()
{
return (radius*2)*Math.PI;
}
}
Rectángulo
public class Rectangle {
private int width;
private int height;
public Rectangle(int width, int height) {
this.width = width;
this.height = height;
}
public int calculateArea() {
return width*height;
}
public int calculatePrimeter() {
return (width+height)*2;
}
}
Cuadrado
public class Square {
private int edge;
public int calculateArea() {
return edge*edge;
}
public int calculatePrimeter() {
return edge*4;
}
}
Se puede definir una interfaz y todas las clases de llevarlo a la práctica esta interfaz. Añadir todos los métodos comunes en una interfaz.
public interface Shapes {
public double calculateArea();
public double calculatePrimeter();
}
Ahora todas las clases de forma implementarán la interfaz anterior y proporcionar la implementación de métodos de interfaz. En su caso cambiar el tipo de retorno de todos sus métodos. se puede mantener el doble.
public class Circle implements Shapes{
private int radius;
public Circle (int radius) {
this.radius = radius;
}
@Override
public double calculateArea() {
return (radius * radius) * Math.PI;
}
@Override
public double calculatePrimeter() {
return (radius * 2) * Math.PI;
}
}
public class Rectangle implements Shapes{}
public class Square implements Shapes{}
A continuación, es necesario tener una lista
static List<Shapes> unitList = new ArrayList<Shapes>();
Obtener entradas del usuario y añadir a la lista anterior. Después, simplemente de bucle unitList
y de llamada respectivos métodos
Para el cálculo de Área
for (Shapes shape : unitList)
System.out.println("Area: " + shape.calculateArea());
Para el cálculo del perímetro
for (Shapes shape : unitList)
System.out.println("Perimeter: " + shape.calculatePrimeter());