import java.util.*;public class Test
{

int PointNum;
float PointX;
float PointY;


float setPointX()
{
Random r=new Random();
return r.nextFloat()*12;
}


float setPointY()
{
Random r=new Random();
return r.nextFloat()*10;

}

public static void main(String args[])
{
int Userinput,inNum,Size=50;
Test[] Dot =new Test[Size];
System.out.println("There will be " +  Size  + " random points");
for(int m=0;m<Dot.length;++m)
{
Dot[m].PointNum=m+1;
Dot[m].PointX=Dot[m].setPointX();
Dot[m].PointY=Dot[m].setPointY();
}


for(int m=0;m<Dot.length;++m)
{
System.out.println(Dot[m].PointNum+":" +Dot[m].PointX +"," + Dot[m].PointY);
}
}
}
使用的是JCreator3。50pro,编译通过,运行结果: 
There will be 50 random points 
Exception in thread "main"java.lang.NullPointerException 
at Test.main(Test.java:32)

解决方案 »

  1.   

    import java.util.*;public class Test
    {

    int PointNum;
    float PointX;
    float PointY;


    float setPointX()
    {
    Random r=new Random();
    return r.nextFloat()*12;
    }


    float setPointY()
    {
    Random r=new Random();
    return r.nextFloat()*10;

    }

    public static void main(String args[])
    {
    int Userinput,inNum,Size=50;
    Test[] Dot =new Test[Size];                  for (int i=0; i<Dot.lenght; i++) {
                             Dot[i] = new Test();
                      } System.out.println("There will be " +  Size  + " random points");
    for(int m=0;m<Dot.length;++m)
    {
    Dot[m].PointNum=m+1;
    Dot[m].PointX=Dot[m].setPointX();
    Dot[m].PointY=Dot[m].setPointY();
    }


    for(int m=0;m<Dot.length;++m)
    {
    System.out.println(Dot[m].PointNum+":" +Dot[m].PointX +"," + Dot[m].PointY);
    }
    }
    }
      

  2.   

    学会 Debug . 一步一步 , Step .
      

  3.   

    在for语句里,用++m肯定是要越界的啦
      

  4.   

    谢谢blue009,问题已经解决!
    我只是声明了一个Test对象数组,却没有构造这些Test对象。