java.lang.NullPointerException这个怎么解决

shaesnow 2018-04-19 10:05:28
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)
请问我应该怎样修改?
...全文
1075 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
usecf 2018-04-20
  • 打赏
  • 举报
回复
断点调试 看看你赋值 计算的结果
oyljerry 2018-04-20
  • 打赏
  • 举报
回复
直接看你area怎么计算的
shaesnow 2018-04-19
  • 打赏
  • 举报
回复
我已经知道怎么改了 Point a=new Point(0,0); Point b=new Point(0,0); Point c=new Point(0,0); 这样就可以了,谢谢!
shaesnow 2018-04-19
  • 打赏
  • 举报
回复
不过还有一个问题,我改了后输出结果为area=0,我该怎么改?

58,452

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧