java.lang.NullPointerException这个怎么解决
import java.awt.Point;
import javax.swing.JOptionPane;
import java.text.DecimalFormat;
class Triangle{
Point a,b,c=new Point(0,0);
double area=0;
double x1=a.distance(b);
double x2=a.distance(c);
double x3=b.distance(c);
double s=(x1+x2+x3)/2;
public String toString(){
return "["+a.getX()+","+a.getY()+"]\n"+
"["+b.getX()+","+b.getY()+"]\n"+
"["+c.getX()+","+c.getY()+"]";
}
public Triangle(Point a,Point b,Point c) {
this.a=a;
this.b=b;
this.c=c;
}
double getTriangleArea() {
area=s*(s-x1)*(s-x2)*(s-x3);
area=Math.sqrt(area);
return area;
}
}
public class TriangleTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String output ="";
Point a1,a2,a3;
Point b1,b2,b3;
a1=new Point(0,0);
a2=new Point(30,0);
a3=new Point(30,40);
b1=new Point(10,10);
b2=new Point(40,50);
b3=new Point(0,100);
Triangle t1,t2;
t1=new Triangle(a1,a2,a3);
t2=new Triangle(b1,b2,b3);
DecimalFormat twoDigits=new DecimalFormat("0.00");
output+="第一个三角形的顶点为:\n"+t1.toString();
output+="\n第一个三角形的面积为:"+twoDigits.format(t1.getTriangleArea());
output+="\n"+"第二个三角形的顶点为:\n"+t2.toString();
output+="\n第二个三角形的面积为:"+twoDigits.format(t2.getTriangleArea());
JOptionPane.showMessageDialog(null, output);
System.exit(0);
}
}
编译后显示:
Exception in thread "main" java.lang.NullPointerException
at Triangle.<init>(TriangleTest.java:8)
at TriangleTest.main(TriangleTest.java:45)
请问我应该怎样修改?