以下是代码:
主要类
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 Class:
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”
错误在哪里?
答案 0 :(得分:6)
for(int i=0;i>3;i++)
应为for(int i=0;i<3;i++)
,否则循环永远不会执行。因此,你的程序什么都不做。
您还应该增加数组Geo[] geoformen = new Geo[3];
的大小,否则在访问ArrayIndexOutOfBounds
时会出现geformen[i]
异常(数组基于0进行索引)。