1原始代码
class Point {
double x, y;
public Point(double _x, double _y) {
x = _x;
y = _y;
}
public double getDistance(Point p) {
return Math.sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y));
}
}
public class TestConstructor {
public static void main(String[] args) {
Point p = new Point(3.0, 4.0);
Point origin = new Point(0.0, 0.0);
System.out.println(p.getDistance(origin));
}
}
2逐步分析
class Point {
double x, y;
public Point(double _x, double _y) {
x = _x;
y = _y;
System.out.println(x);
System.out.println(y);
System.out.println();
}
public double getDistance(Point p) {
//它是穿了一个对象进来
//Point p, 是 origin的对象实例的地址
//上面那个Point p 实例里面是 x=0.1, y=0.2
//所以,那个p.x,表示0.1
System.out.println(p.x);
System.out.println(p.y);
/* System.out.println();
System.out.println();
System.out.println(p.x);
System.out.println();
System.out.println(y);
System.out.println();
System.out.println(p.y);
System.out.println();
*/
return Math.sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y));
// return "";
}
}
public class TestConstructor {
public static void main(String[] args) {
Point p = new Point(3.0, 4.0);
Point origin = new Point(0.1, 0.2);
// System.out.println(p);
// System.out.println();
// System.out.println(origin);
// System.out.println();
System.out.println(p.getDistance(origin));
}
}
3逐条注解
class Point{//定义一个Point类
double x,y,z;//这个类有三个属性,x,y,z
public Point(double _x,double _y,double _z){//构造函数给x,y,z赋初值
x=_x;
y=_y;
z=_z;
}
public double getDistance(Point p){//一个public类型的成员函数计算Point p与开始赋值的点的(欧式)距离
return Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z));
}
}
class Test{
public static void main(String[] args){
Point p=new Point(3.0,4.0,5.0);//建了一个坐标为(3.0,4.0,5.0)的点,记为p
Point origin=new Point(0.0,0.0,0.0);//建了一个坐标为(0.0,0.0,0.0)的点,记为origin
System.out.println(p.getDistance(origin));//计算p与origin两点间的距离并打印到控制台
}
}
//-----------------------
Point.java
public class Point {
private double x;
private double y;
private double z;
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
public double getZ() {
return z;
}
public void setZ(double z) {
this.z = z;
}
public Point(double x, double y, double z) {
super();
this.x = x;
this.y = y;
this.z = z;
}
/**
* 计算两个点的距离
* @param p
* @return
*/
public double distance(Point p){
return Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z));
}
public static void main(String[] args) {
Point p1 = new Point(1, 1, 1);
Point p2 = new Point(2, 2, 2);
System.out.println(p1.distance(p2));
}
}