public class Punct {float 0,y; private float x,y;找不到爲什麼NullPointerException?
public Punct (float x, float y) {
this.x = x;
this.y = y;
}
public void changeCoords (float x, float y) {
this.x = x;
this.y = y;
}
public void displayCoords() {
System.out.println ("(" + x + ", " + y + ")");
}
}
公共類Poligon {
Punct points[];
public Poligon (int num, float values[]) {
points = new Punct[num];
int j = 0;
for (int i = 0; i < num; ++i) {
points[i].changeCoords(values[j], values[j+1]);
j+=2;
}
}
public void displayPoligon(int nr) {
for (int i = 0; i < nr; ++i) {
points[i].displayCoords();
}
}
}
公共類測試{
public static void main(String[] args) {
int n = 3;
float val[] = new float[2*n];
for (int i = 0; i < 2*n; ++i) {
val[i] = i;
}
Poligon a = new Poligon(n, val);
a.displayPoligon(n);
}
}
當我編譯這段代碼時,它將java.lang.NullPointerException異常返回給「points [i] .changeCoords(values [j],values [j + 1]);」即使我已經爲points []創建實例。
你似乎永遠項目分配給您的數組聲明數組的每個成員,所以直到你這樣做首先你不能使用任何倍。 – 2014-09-18 16:43:51
我不允許這樣做:「for(int i = 0; i <2 * n; ++ i){val [i] = i; }」? – nietzche0607 2014-09-18 16:45:13
這與它無關。當你沒有將任何對象賦給數組時,你試圖在'points [i]'上調用一個方法。 – 2014-09-18 16:45:59