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)
这样的错误呀?
请各位帮忙解决一下!
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类型的对象放进去才行
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();
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());
}
}
只是分配了十个引用,并没有实例化