当前位置:编程学习 > JAVA >>

请问这哪里错了??都纠结一天了。。我真心笨。。

D:\>javac ClassTest.java

D:\>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相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,