填充数组与不同的对象类型(并随机分配一个值给他们的参数)使用循环?



嗨,谁能演示一下如何用不同的对象类型填充类型引用和数组?

我已经为相应的对象创建了类(三角形,圆形,矩形)但我不知道如何让这些类的每个对象填充数组的每个索引

我刚接触java,一直被任务困住了。

分配问题:用任意类型的对象随机填充这个数组三种类型:三角形、圆形和矩形。每个对象的状态(例如:(位置或半径等)也是随机分配的

您可以通过几种方式实现它。第一个是将不同的对象放入原始Object类型的集合中。对于这种情况,您不需要实现任何接口,但需要在从列表中检索时将对象强制转换为所需的类型。虽然这种方法很简单,并且在少数情况下有效,但不推荐使用。

另一种方法是为所有类实现一个通用的Shape接口,然后创建一个Shape列表。然后,您可以将所有形状放入该集合中。您还可以调用可以在从列表中检索时在接口上定义的常见形状方法。您也可以使Shape成为Abstract类或常规类,并将其用作Super类,并从Shape扩展您的类

public class Triangle implements Shape {
}
public class Circle implements Shape {
}
public class Rectangle implements Shape {
}
public interface Shape {
}
public static void main(String... args) {
Triangle t = new Triangle();
Circle c = new Circle();
Rectangle r = new Rectangle();

// Raw Type
List<Object> shapeListRaw = new ArrayList<>();
shapeListRaw.add(t);
shapeListRaw.add(c);
shapeListRaw.add(r);

// Strictly Typed
List<Shape> shapeListTyped = new ArrayList<>();
shapeListTyped.add(t);
shapeListTyped.add(c);
shapeListTyped.add(r);
//Similarly Raw type array
Object[] shapeArrRaw = new Object[3];
shapeArrRaw[0] = t;
shapeArrRaw[1] = c;
shapeArrRaw[2] = r;
//Typed Array
Shape[] shapeArrTyped = new Shape[3];
shapeArrTyped[0] = t;
shapeArrTyped[1] = c;
shapeArrTyped[2] = r;
}

您可以使用工厂模式。
访问https://www.tutorialspoint.com/design_pattern/factory_pattern.htm

public class ShapeFactory {
//use getShape method to get object of type shape 
public Shape getShape(String shapeType){
if(shapeType == null){
return null;
}
if(shapeType.equalsIgnoreCase("CIRCLE")){
Circle c = new Circle();
c.setRadius(Math.random()*100);
return c;

} else if(shapeType.equalsIgnoreCase("RECTANGLE")){
return new Rectangle();

} else if(shapeType.equalsIgnoreCase("SQUARE")){
return new Square();
}
return null;
}
}
public class Main{
public static void main(String args[]){
List<Shape> shape=new ArrayList<>();
}
}

相关内容

最新更新