前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java学习-构造方法相关问题的解释

java学习-构造方法相关问题的解释

作者头像
Fisherman渔夫
发布2019-07-30 17:44:02
3680
发布2019-07-30 17:44:02
举报
文章被收录于专栏:渔夫

class Point { double x,y; //方法名称必须与构造方法名保持一致 public Point(double _x,double _y){ x=_x; y=_y; } public double GetDistance(Point h){ return Math.sqrt((x-h.x)(x-h.x)+(y-h.y)(y-h.y)); }

代码语言:javascript
复制
public void shuchu(){
	System.out.println(x);
	System.out.println(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)); p.shuchu(); System.out.println(x);//这是非法的

代码语言:javascript
复制
}

}

遇到的问题:(欢迎指正) ①为何类名要与构造方法名要相同? 解释: 一个类里面可有多个方法,但是构造方法是为了方便赋予对象初值,所以可以用Point(3.0,4.0)来赋值 而一个类里一般的方法或者属性要么用p.xxx来对对象进行赋值 ②为何我们传给p.GetDistance(origin)函数时,参数只给了orign,在其方法的定义中却用到了(x,y)的值? 解释:System.out.println(x);//这是非法的,这件事告诉我们,x是类里的属性名,我们不能使用,p.x作为一个对象的属性是可以调用的;System.out.println(p.x)是合法的。 在调用p.GetDistance(origin)之前是建立在对于p进行属性的初始化了,是p.x=3.0,p.y=5.0而非x,y有值。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年03月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档