新手到java,想创建一个制作对象的循环

时间:2016-10-01 19:45:00

标签: java arrays class loops object

我正在尝试制作15个不同的多边形实例,每个实例具有不同的半径,从225开始,每个实例比另一个短15个像素。第二个和第三个字段是对象居中的坐标将是地方。我知道[i]不起作用,我已经读过我应该使用一个数组,但是我在执行代码时遇到了麻烦:

public void paintComponent(Graphics g)
{
    Graphics2D g2 = (Graphics2D) g;

    int i;
    int number = 15;
    int radiussize = 225;

    for(i=0;i<=number;i++){
        Shape object[i]= new Shape(radiussize-(i*15),250,300);
        object[i].draw(g2);
    }
}

我希望结果是15个名为的对象:

object0, object1, object2...object15.

3 个答案:

答案 0 :(得分:1)

如果要在循环中执行此操作,则不能拥有变量的名称。如果你想存储它们,你应该创建对象的数组并以这种方式创建它们:

public void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;

    int number = 15;
    int radiusSize = 225;

    Shape[] objects = new Shape[number];

    for(int i=0; i<number; i++){
        objects[i] = new Shape(radiuSsize - (i * 15), 250, 300);
        objects[i].draw(g2);
    }
} 

答案 1 :(得分:0)

你遇到的确切问题是什么?

以下是否有效?

for(i=0;i<=number;i++){
            Shape object= new Shape(radiussize-(i*15),250,300);
            object.draw(g2);
           }

答案 2 :(得分:0)

我知道你的代码中有一个名为object的数组吗?如果是,则执行此操作,而不是Shape object[i]=...

object[i] = new Shape(...

它基本上将一个新的Shape对象放在名为object的数组中的第i个位置。就像我说你需要拥有那个数组,如果你不这样做,那么就把它放在你的课堂上:

Shape[] object = new Shape[16];

此代码正在创建一个大小为Shape的{​​{1}}对象数组。如果您只想绘制对象而不将它们存储在任何地方,请执行以下操作:

16

如果您希望变量名为new Shape(radiussize-(i*15),250,300).draw(g2);object1等等 - 您不能这样做,并且您没有理由需要它。只需将它们存储在一个数组中,然后通过object2引用它们。

相关问题