我正在做一个圆形程序,我有一个带有XY信息的点类。在这里,我正在做一个圆圈类,我有几个方法来创建圆圈和主要方法,其中包含输入数据。但是,我一直在
Exception in thread "main" java.lang.NullPointerException
at hw_CircRect.circle.display(circle.java:26)
at hw_CircRect.circle.main(circle.java:36)
请帮我看看〜非常感谢! 这是我的圈子类代码:
public class circle {
private Point center;
private double radius;
private double area;
public circle (Point center, double radius)
{
center = new Point (center);
area = radius * radius * 3.14;
}
public void display()
{
System.out.println("Circle Information:");
center.print();
System.out.println("Radius: "+radius);
System.out.println("Area: "+area);
}
public static void main (String[] args)
{
Point center = new Point(10,10);
double radius = 4;
circle c1 = new circle (center, radius);
c1.display();
}
}
答案 0 :(得分:2)
您的构造函数正在修改其参数而不是类字段。使用this
指定后者:
this.center = new Point (center);
或者,您可以通过为参数使用其他名称来防止阴影。
答案 1 :(得分:0)
您正在编辑参数center
而不是变量,因此c1.center
保持为空,当您尝试访问变量时,您会获得NullPointerException
。要解决问题,请使用关键字this
:
public circle (Point center, double radius)
{
this.center = new Point (center);
area = radius * radius * 3.14;
}