Java 将形状变为红色的静态方法

Java 将形状变为红色的静态方法,java,Java,所以我做了这个程序,我试图在我的测试文件中添加一个静态方法,将随机形状数组变成红色。 公共抽象类形状 形状类 public abstract class Shape { private String color; public Shape() { color = "white";} public String getColor() { return color;} public void setColor(String c) { color = c; } public abstract dou

所以我做了这个程序,我试图在我的测试文件中添加一个静态方法,将随机形状数组变成红色。 公共抽象类形状 形状类

public abstract class Shape
{
private String color; 
public Shape() { color = "white";}
public String getColor() { return color;}
public void setColor(String c) { color = c; }
public abstract double area(); 
public abstract double perimeter();
public abstract void display();
}
圆类

public class Circle extends Shape {

    private double radius;
    public Circle( double r)
    {
    super();
    radius = r;
    }
    public double getRadius()
    { return radius; }
    //Implement area, perimeter and display
    public double area()
    {
    return Math.PI * radius* radius;
    }
    public double perimeter()
    {
    return 2* Math.PI *radius;
    }
    //Circle class - continued
    public void display()
    {
    System.out.println( this);
    }
    public String toString()
    {


                return "Circle: radius:" + radius
                + "\tColor: " + getColor(); 

    }
}
我的主要课程是考试

public class TestingShapes {

    public static double sumArea( Shape[] b)
    {
        double sum = 0.0;
        for( int k = 0; k < b.length; k++)
        {
            sum = sum + b[k].area();

        }
        return sum;

    }
    public static void printArray( Shape[] b)
    {
    for (Shape u: b)
System.out.println(u + "\tArearea " +  u.area());
    System.out.println();
    }





    public static void main( String[] args)
    {
    Shape[] list = new Shape[20]; //Not creating Shapes
     for ( int k = 0 ; k < list.length; k++)
    {
    double z = Math.random();
    if( z < 0.33 )
    list[k] = new Circle(1 + Math.random() * 10);
    else if(z<0.66)
    list[k] = new Rectangle ( 3*(k+1), 4*(k+1), 5*(k+1),6*(k+1));
    else
    list[k] = new Triangle ( 3*(k+1), 4*(k+1), 5*(k+1));

    }

     printArray(list);
     System.out.println();
     double sum = sumArea(list);
     System.out.println("Sum of List Area: " + sum);
    }
公共类测试形状{
公共静态双集水坑区域(形状[]b)
{
双和=0.0;
for(int k=0;k否则,如果(z要将某些形状随机变为红色,您将创建一个接受形状数组的方法,并在其上循环。您可以使用
Math.random()
获得介于0和1之间的随机浮点数。要将20%的形状变为红色,您只需将
Math.random()
与20%:
if(Math.random()<0.2){使用“red”调用形状的setColor方法}
。由于Java中的数组/集合是通过引用传递的,您不需要从该方法返回任何内容,它将修改调用者拥有的副本。

您有什么问题吗?我如何创建一个静态方法,该方法将随机将某些形状变为红色而不是红色white@user2977404每个形状都有一个方法
setColor(字符串c)
。使用它。