请问这哪里错了??都纠结一天了。。我真心笨。。
D:\>javac ClassTest.javaD:\>java ClassTest
p1的坐标为:(0,0)
p1和p2间距为:6.0
Exception in thread "main" java.lang.NullPointerException
at ClassTest.main(ClassTest.java:63)
class Point{
int x,y;
Point(){}
Point(int xx,int yy){
this.x=xx;
this.y=yy;
}
int getX(){
return x;
}
int getY(){
return y;
}
double distance(Point p){
int d;
d=(int)Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
return d;
}
}
class Circle{
int m;
Point center;
int radius;
Circle(){}
Circle(int xx,int yy,int r){
Point ob=new Point();
ob.x=1;ob.y=2;radius=r;
}
Circle(Point c,int r){
center.x=c.x;
center.y=c.y;
center=c;
radius=r;
}
int perimeter(){
int c;
c=2*radius*3;
return c;
}
int area(){
int s=radius*radius*3;
return s;
}
/*int relation(Circle c){
if(center.x==c.center.x&¢er.y==c.center.y&&radius==c.radius) return m=0;
if(center==c.center&&radius==c.radius)//
if(center.x==c.center.x&¢er.y==c.center.y&&radius!=c.radius) return m=1;
if((center.distance(c.center)>(radius-c.radius))&¢er.distance(c.center)<(radius+c.radius)) return m=2;
if(center.distance(c.center)>radius+c.radius) return m=3;
if(center.distance(c.center)<radius-c.radius) return m=4;
return 0;
}*/
}
public class ClassTest{
public static void main(String args[]){
Point p1=new Point();
Point p2=new Point(4,5);
Circle c1=new Circle();
Circle c2=new Circle(2,3,2);
System.out.println("p1的坐标为:"+"("+p1.x+","+p1.y+")");
System.out.println("p1和p2间距为:"+p1.distance(p2));
System.out.println("圆c1的圆心、半径为:"+"("+c1.center.x+","+c1.center.y+")"+","+c1.radius);
System.out.println("圆c2的周长面积为:"+c2.perimeter()+","+c2.area());
}
}
--------------------编程问答-------------------- System.out.println("圆c1的圆心、半径为:"+"("+c1.center.x+","+c1.center.y+")"+","+c1.radius);
c1.center==null。
把Circle默认的构造方法改成这个就可以了
Circle(){
Point ob=new Point();
ob.x=1;ob.y=2;radius=1;
} --------------------编程问答-------------------- 空指针异常在63行
补充:Java , Java相关