2014-10-11 84 views
-1

我試圖創建一個對象,其中包含3個變量,並能夠通過兩種不同的方法來運行它。這是我的對象。基於這三個變量,A,B和C,它由+ C = 0java.lang.NullPointerException;試圖創建一個對象,並調用一些方法

public class APLine { 

    private double a; 
    private double b; 
    private double c; 

    //this method returns the slope of the line 
    public double getSlope() { 
    double slope = (-a/b); 
    return slope; 
    } 

    //this method checks to see if the line crosses the given point 
    public boolean isOnLine(double x, double y) { 
    if (a*x + b*y + c == 0) { 
     return true; 
    } else { 
     return false; 
    } 
    } 

    //constructor 
    public APLine(double a, double b, double c) { 
    } 
} 

適用於線AX +值這是測試類我創建試試我的方法。我沒有編寫任何類的問題。

public class linetest { 
    public void main (String[] args) { 
    APLine l = new APLine(3, 5, 4.5); 
    System.out.println(l.getSlope()); 
    System.out.println(l.isOnLine(0, 0)); 
    System.out.println(l.isOnLine(0, (-4.5/3))); 
    } 
} 

我得到的錯誤是:

java.lang.NullPointerException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272) 

有人能解釋我做錯了嗎?

+0

您是否發佈了完整的構造函數?你似乎沒有給你的成員變量分配任何值。 – RKodakandla 2014-10-11 01:15:40

回答

1

你的主要方法簽名不正確,它應該永遠是這樣的:

public static void main(String[] args) { ... }

此外,您APLine構造函數不跟你傳遞的參數什麼。您應該將實例變量分配給這些參數:

public APLine(double a, double b, double c) { 
    this.a = a; 
    this.b = b; 
    this.c = c; 
} 
+0

謝謝,我對編碼相當陌生,所以我並不總是抓住小錯誤。它現在正在工作。 – OSG 2014-10-11 01:22:15

相關問題