暂无权限

加入尚新途,才有权限看这些视频哦!

点击前往
×
问答
middle
1楼

图片.pngw为啥这里不用加this.



尚新途

可以加也可以不加

middle
2楼

图片.pngs什么时候用public什么时候不用,还有_x和_y是double的格式吗

尚新途

public是访问控制符,如果想让你的代码在任何地方都可以调用,就加public.访问控制符后面会有相关的讲解

middle

_x和_y是double的格式吗,还是说这个是什么情况下这么写


尚新途

案例中_x和_y是double数据类型,当调用类型的构造方法时,为其成员变量赋值

*malloc - L
3楼

/*
定义一个Point)类用来表示二维空间中的点(有两个坐标)。要求如下:
可以生成具有特定坐标的点对象。
提供可以计算该距另外一点距离的方法
*/
public class Point {
   double x,y;
   Point(double _x,double _y){
       double x=_x;
       double y=_y;

   }
   public double distance(Point p){
       return Math.sqrt((x-p.x)*(x-p.x)+(y- p.y)*(y- p.y));
   }
   public static void main(String[] args) {
       Point p1=new Point(3.0,4.0);
       Point orgin =new Point(0.0,0.0);
       System.out.println(p1.distance(orgin));
   }
}

image.png




我这个为什么输出的时0,哪里有问题了

微信用户
4楼
getDistance(Point p){

请问下,这个Point 后面为什么是直接加p,前面的语句好像没有定义p

我躺好了
5楼

老师,p1在调用getDistance方法的时候,Math.sqrt()方法也会在栈里面以栈帧形势存在吗?

image.png

尚新途

对的,这个也会以栈帧形势存在

微信用户
6楼

这一步不是很明白,为啥又是p.x和p.y?image.png

尚新途

image.png

?向阳?
7楼

QQ图片20230420210831.jpg

老师 每次当堆中建立对象的时候同时也会执行下面的方法吗

尚新途

不是的,是你建立对象的时候会在内存中开辟这个空间的

刘成
8楼

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 static void main(String[ ] args) {

Point p1 = new Point(3.0, 4.0);

Point origin = new Point(0.0, 0.0);

System.out.println(p1.getDistance(origin));

}

}


这行代码Point p1 = new Point(3.0, 4.0);,中的point是这个point类还是这个构造方法

尚新途

这里的Point(3.0,4.0)是调用的Point类里的有参构造方法

沙正恒
9楼

image.png

image.png

输出一行的意思是从p1调用了getDistance这个方法,然后将oigin中的x,y传入这个方法p.X和p.y的意思吗

尚新途

理解很到位,棒棒哒

杨文秀
10楼
p.x和p.y的值是0吗


尚新途

对的,是0

嘎嘎嘎?
11楼

老师我这一节都看得懵懵的,咋办啊TAT!
我还不懂为什么有些是“public static viod main ......”有些是“public double 名称(参数)”请问这些有啥区别?
image.png

尚新途

首先main方法的写法是固定的,你不需要改,其他方法上面加了static,这个方法就会拥有static的特性,该方法会在类加载的时候加载,并且只加载一起,并由所有对象共享该方法,可以通过类名直接调用,其他的和没有static的方法是一样的。

嘎嘎嘎?

main方法和其他方法有啥区别?
没有static会怎样?

尚新途

其实是一样的,只是main方法的写法是固定的,在Java中被标记为程序的入口,main方法没有static就不是main方法了,而是变为普通方法。

刘艺群
12楼
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 static void main(String[ ] args) {
            Point p1 = new Point(3.0, 4.0);
            Point origin = new Point(0.0, 0.0);
                System.out.println(p1.getDistance(origin));
    }
}

我该怎么去理解

class Point,然后后面的Point p1,Point origin?
class Point是定义一个类,那么Point p1是什么意思?Point是作为修饰符还是什么?为什么
在P1前写它?


尚新途

 实例化对象标准格式

类名  对象名(变量名)=new  类名();


小唐
13楼

屏幕截图_20230212_175049.png老师这个为什么错了?

尚新途

image.png

GSY
14楼

image.png

为什么要将_x和_y 依次传到x y中呢?能不能直接将_x _y 写成x y ?

尚新途

image.png

孫長檢
15楼
public class Point {
    double x,y;
    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.x));
    }

    public static void main(String[] args) {
        Point p1 = new Point(3.0,4.0);
        Point origin = new Point(0.0,0.0);
        System.out.println(p1.getDistance(origin));
    }
}

1,Math.sqrt的sqrt是什么?

2,Point p能不能直接写成p?

3,origin的值给p了,如果_x_y不是0.0和0.0假如是3.0和4.0那怎么确定p用3.0还是用4.0?

尚新途
  1. 这个Math.sqrt的sqrt是Math类里提供的方法

  2. 这里的p是变量名,前面的不能省略,可以提前声明在后面进行赋值,这个p也可以写成其他的

  3. 这个传入参数后会调用里面的属性,这个的使用是根据方法内部怎么调用的来看的

自我检测(5S)