-5

这是代码:

主班

package geoformen;


public class Geoformen {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        double zufall;
        Geo[] geoformen = new Geo[2];

        for(int i=0;i>3;i++){
            zufall = Math.random();

            if (zufall > 0.5){
                geoformen[i] = new Kreis(2);
            } else {
                geoformen[i] = new Rechteck(10,20);
            }
        }

        for(int i=0;i>3;i++){
            geoformen[i].printGeoformen();
        }

    }
}

地理类:

package geoformen;


abstract class Geo {

    abstract void printGeoformen();
}

Kreis 类:

package geoformen;

public class Kreis extends Geo {

    private double radius;

    public Kreis(double pr){
        radius = pr;
    }


    public void setRadius(double pr){
        radius = pr;
    }

    public double getRadius(){
        return(radius);
    }



    public void printGeoformen(){
        System.out.println("Zeichne einen Kreis mit Radius: " + getRadius());
    }
}

和 Rechteck 类:

package geoformen;


public class Rechteck extends Geo {

    private double breite;
    private double laenge;

    public Rechteck(double pB, double pL){
        breite = pB;
        laenge = pL;
    }

    public void setBreite(double pB){
        breite = pB;
    }

    public double getBreite(){
        return(breite);
    }

    public void setLaenge(double pL){
        laenge = pL;
    }

    public double getLaenge(){
        return(laenge);
    }

    public void printGeoformen(){
        System.out.println("Zeiche ein Rechteckt mit der Laenge von: " + getLaenge() + "cm und einer Breite von: " + getBreite() + "cm");
    }
}

在我运行它之后,它什么也没做。它应该给我一个像“Zeiche ein Rechteckt mit der Laenge von 10 und einer Breite von 20”这样的输出

错误在哪里?

4

1 回答 1

6

for(int i=0;i>3;i++)应该是for(int i=0;i<3;i++)否则循环永远不会执行。因此,您的程序什么也不做。

您还应该增加数组的大小,Geo[] geoformen = new Geo[3];否则访问时会出现ArrayIndexOutOfBounds异常geformen[i](数组是基于 0 的索引)。

于 2013-06-16T19:54:59.550 回答