2014-10-11 118 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

相关问题