2017-02-08 2 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 остается пустым, а когда вы пытаетесь получить доступ к переменной, вы получаете NullPointerException. Для исправления используйте ключевое слово this:

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