为什么我的两点间的距离一直是0

直线类


package ti;

public class line {
         a p1,p2;
         static float d;
         float dx,dy;
         
         void setline(a p1,a p2) {
             this.p1=p1;
             this.p2=p2;
         }
         void js() {
             float dx=p1.getX()-p2.getX();
             float dy=p1.getY()-p2.getY();
             d=(float) Math.sqrt(dx*dx+dy*dy);
         }
         static float getDistance(a p1,a p2) {
             
             float dx=p1.getX()-p1.getX();
             float dy=p2.getY()-p2.getY();
              d=(float) Math.sqrt(dx*dx+dy*dy);
              return d;
             
         }
         void xs() {
             p1.xs();
             p2.xs();
             System.out.println("两点间的距离是:"+d);
         }
}

点类
package ti;

public class a {

public a(float x,float y) 
{
    this.x=x;
    this.y=y;
}
private float x,y;
 float getX() {
    return x;
}
 float getY() {
    return y;
}
 void set(float x,float y) {
     this.x=x;
     this.y=y;
 }
void xs() {
    System.out.println("("+x+","+y+")");
}

}

结果类
package ti;

public class jgline {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println("----------第7组甘雨菡----------");
      a d1=new a(3,4);
      a d2=new a(1,4);
      line s=new line();
      s.setline(d1, d2);
      line.getDistance(d1,d2);
      s.xs();
      
      
      
}

}

img

              //float dx=p1.getX()-p1.getX();
              //float dy=p2.getY()-p2.getY();
              //上面两行  写错了,都是自己减去自己,肯定是0
              float dx=p1.getX()-p2.getX();
              float dy=p1.getY()-p2.getY();

你把static去掉试试, 问题可能出在这, 你是通过类直接调用的xs方法, 里面的d虽然也是static, 不过我建议把static都去掉, 然后通过s实例来调用xs试试, 应该能解决问题

img

你这有点马虎呀

还有一点就是建议类名首字母大写。