我正在尝试创建一个包含3个变量的对象,并且能够通过两种不同的方法运行它。这是我的目标。基于三个变量a,b和c,它保持线ax + + + c = 0的值。
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) {
}
}
这是我为尝试我的方法而创建的测试类。编译任何一个课都没有问题。
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 :(得分: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;
}