w为啥这里不用加this.
可以加也可以不加
s什么时候用public什么时候不用,还有_x和_y是double的格式吗
public是访问控制符,如果想让你的代码在任何地方都可以调用,就加public.访问控制符后面会有相关的讲解
_x和_y是double的格式吗,还是说这个是什么情况下这么写
案例中_x和_y是double数据类型,当调用类型的构造方法时,为其成员变量赋值
/*
定义一个“点”(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));
}
}
我这个为什么输出的时0,哪里有问题了
getDistance(Point p){
请问下,这个Point 后面为什么是直接加p,前面的语句好像没有定义p
老师,p1在调用getDistance方法的时候,Math.sqrt()方法也会在栈里面以栈帧形势存在吗?
对的,这个也会以栈帧形势存在
这一步不是很明白,为啥又是p.x和p.y?
老师 每次当堆中建立对象的时候同时也会执行下面的方法吗
不是的,是你建立对象的时候会在内存中开辟这个空间的
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类里的有参构造方法
输出一行的意思是从p1调用了getDistance这个方法,然后将oigin中的x,y传入这个方法p.X和p.y的意思吗
理解很到位,棒棒哒
p.x和p.y的值是0吗
对的,是0
老师我这一节都看得懵懵的,咋办啊TAT!
我还不懂为什么有些是“public static viod main ......”有些是“public double 名称(参数)”请问这些有啥区别?
首先main方法的写法是固定的,你不需要改,其他方法上面加了static,这个方法就会拥有static的特性,该方法会在类加载的时候加载,并且只加载一起,并由所有对象共享该方法,可以通过类名直接调用,其他的和没有static的方法是一样的。
main方法和其他方法有啥区别?
没有static会怎样?
其实是一样的,只是main方法的写法是固定的,在Java中被标记为程序的入口,main方法没有static就不是main方法了,而是变为普通方法。
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 类名();
老师这个为什么错了?
为什么要将_x和_y 依次传到x y中呢?能不能直接将_x _y 写成x y ?
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?
这个Math.sqrt的sqrt是Math类里提供的方法
这里的p是变量名,前面的不能省略,可以提前声明在后面进行赋值,这个p也可以写成其他的
这个传入参数后会调用里面的属性,这个的使用是根据方法内部怎么调用的来看的