一个简单的JAVA程序,高手帮我看看!

来源:百度知道 编辑:UC知道 时间:2024/05/23 14:12:27
定义一个点Point类,用来表示三维空间的点(有三个坐标)。
要求:1.可以生成具有坐标点的对象,2.可以提供设置3个坐标点的方法
3.提供该点到原点的距离的平方的方法

class Point{
double x,y,z;

Point(double x,double y ,double z){
x=x;
y=y;
z=z;
}

void setx(double x){
x=x;
}

void sety(double y){
y=y;
}

void setz(double z){
z=z;
}

double getDistance(Point p1){
return (x-p1.x)*(x-p1.x)+(y-p1.y)*(y-p1.y)+(z-p1.z)*(z-p1.z);
}
}

public class TestPoint{
public static void main (String [] args){
Point p1 = new Point(1.0,2.0,3.0);
Point p2 = new Point(0.0,0.0,0.0);
System.out.println(p1.getDistance(p2));

p1.setx(5.0);
p1.sety(4.0);
p1.setz(3.0);
System.out.println(p1.getDistance(new Point(1.0,1.0,1.0)));
}
}

编译通过了,但是输出总是 0.0,0.0
看了好久也没有看出问题出在什么地方,望各位达人不吝赐教!

class Point{
double x,y,z;

Point(double x,double y ,double z){
this.x=x;
this.y=y;
this.z=z;
}

void setx(double x){
this.x=x;
}

void sety(double y){
this.y=y;
}

void setz(double z){
this.z=z;
}

double getDistance(Point p1){
System.out.println(" "+x+" "+y+" "+z);
return (x-p1.x)*(x-p1.x)+(y-p1.y)*(y-p1.y)+(z-p1.z)*(z-p1.z);
}
}

public class TestApp{
public static void main (String [] args){
Point p1 = new Point(1.0,2.0,3.0);
Point p2 = new Point(0.0,0.0,0.0);
System.out.println(p1.getDistance(p2));

p1.setx(5.0);
p1.sety(4.0);
p1.setz(3.0);
System.out.println(p1.getDistance(new Point(1.0,1.0,1.0)));
}
}

没有指定X,所以导致默认取值为0.
需要用this来指定你要赋值的是对象里面的变量。