2017-02-08 12 views
0

私はXY情報を持つポイントクラスを持つサークルプログラムを実行しています。ここでは、サークルを作成するカップルメソッドと、入力データを持つメインメソッドを持つサークルクラスを実行しています。しかし、私は得続けたNullPointerException java circle project

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();   
    } 
} 

答えて

2

あなたのコンストラクタは、パラメータを変更している代わりに、クラスのフィールド: は、ここに私のサークルのクラスコードです。後者を指定するには、thisを使用します。

this.center = new Point (center); 

また、あなたはパラメータに別の名前を使って、シャドウイングを防ぐことができます。

0

変数の代わりにパラメータcenterを編集しているため、c1.centerはnullのままです。変数にアクセスしようとすると、NullPointerExceptionが得られます。修正するにはキーワードthisを使用する:

public circle (Point center, double radius) 
    {   
      this.center = new Point (center); 
      area = radius * radius * 3.14; 
    }