public class Circle 
{
private double radius;
final double PI=3.1415926;
public Circle()
{
radius=0.0;
}
public void setRadius(double radius)
{
this.radius=radius;
}
public double computeAcreage()
{
return PI*radius*radius;
}
public static void main(String[] args)
{
Circle[] circle=new Circle[10];
for(int i=0;i<10;i++)
{
circle[i].setRadius(Math.random());
System.out.print("圆的半径为:"+circle[i].radius+"  ");
}
System.out.println("\n圆的面积为");
for(int i=0;i<10;i++)
System.out.println("圆"+i+"面积为:"+circle[i].computeAcreage());
}
}为什么会出现Exception in thread "main" java.lang.NullPointerException
at Circle.main(Circle.java:22)
这样的错误呀?
请各位帮忙解决一下!

解决方案 »

  1.   


    public class Circle 
    {
        private double radius;
        final double PI=3.1415926;
        public Circle()
        {
            radius=0.0;
        }
        public void setRadius(double radius)
        {
            this.radius=radius;
        }
        public double computeAcreage()
        {
            return PI*radius*radius;
        }
        public static void main(String[] args)
        {
            Circle[] circle=new Circle[10];
            for(int i=0;i<10;i++)
            {   circle[i]=new Circle();
                circle[i].setRadius(Math.random());
                System.out.print("圆的半径为:"+circle[i].radius+"  ");
            }
            System.out.println("\n圆的面积为");
            for(int i=0;i<10;i++)
                System.out.println("圆"+i+"面积为:"+circle[i].computeAcreage());    
        }
        }你定义了Circle类型的数组,但数组是空的,你要把Circle类型的对象放进去才行
      

  2.   


    public class Circle {
    private double radius;
    final double PI = 3.1415926; public Circle() {
    radius = 0.0;
    } public void setRadius(double radius) {
    this.radius = radius;
    } public double computeAcreage() {
    return PI * radius * radius;
    } public static void main(String[] args) {
    Circle[] circle = new Circle[10];
    for (int i = 0; i < 10; i++) {
                            //实例化
    circle[i] = new Circle();
    circle[i].setRadius(Math.random());
    System.out.print("圆的半径为:" + circle[i].radius + "  ");
    }
    System.out.println("\n圆的面积为");
    for (int i = 0; i < 10; i++)
    System.out.println("圆" + i + "面积为:" + circle[i].computeAcreage());
    }}
    加这句
    //实例化
    circle[i] = new Circle();
      

  3.   


    public class Circle 
    {
        private double radius;
        final double PI=3.1415926;
        public Circle()
        {
            radius=0.0;
        }
        public void setRadius(double radius)
        {
            this.radius=radius;
        }
        public double computeAcreage()
        {
            return PI*radius*radius;
        }
        public static void main(String[] args)
        {
            Circle[] circle=new Circle[10];
            for(int i=0;i<10;i++)
            {   
                //数组现在为空,要不Circle对象赋给数组才行
                circle[i]=new Circle();            circle[i].setRadius(Math.random());
                System.out.print("圆的半径为:"+circle[i].radius+"  ");
            }
            System.out.println("\n圆的面积为");
            for(int i=0;i<10;i++)
                System.out.println("圆"+i+"面积为:"+circle[i].computeAcreage());    
        }
        }
      

  4.   

    Circle[] circle=new Circle[10];
    只是分配了十个引用,并没有实例化