本关任务:编写一个Point类,有x、y两个属性。编写一个PointDemo类,并提供一个distance(Point p1,Point p2)方法用于计算两点之间的距离,实例化两个具体的Point对

#java编程基础

以后会时常更新java编程题,分享所遇之难,答疑解惑,共同努力。

本关任务:编写一个Point类,有x、y两个属性。编写一个PointDemo类,并提供一个distance(Point p1,Point p2)方法用于计算两点之间的距离,实例化两个具体的Point对象并显示他们之间的距离。

解题思路

首先,需要编写两个类!注意!,之前因为自己对java并不深入了解,我就写了一个类,并放入主函数(其实答案是对的),但是评测出现问题,因为评测默认要编写两个类所以你要在两个不同的.java文件中编写。如下图

#代码部分

package step2;
class Point {
//第一个类Point 类
	private Double x;
	private Double y;
	
	public Point() {
	
	}
	public Point(Double x, Double y) {
		this.x = x;//此处必须要注意,this关键字
		this.y = y;//下方附链接
	}
	public Double getX() {
		return x;
	}
	public Double getY() {
		return y;
	}}
	```
	```
	第二个类
	import java.util.Scanner;//输入流
	import java.math.*;//math库
	import java.text.DecimalFormat;//保留小数
class PointDemo {
	Point p1;
	Point p2;
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入第一个点坐标:");
		double x1 = scanner.nextDouble();
		double y1 = scanner.nextDouble();
		System.out.println("请输入第二个点坐标:");
		double x2 = scanner.nextDouble();
		double y2 = scanner.nextDouble();

		Point p1 = new Point(x1, y1);
		Point p2 = new Point(x2, y2);
		PointDemo pd2= new PointDemo(p1,p2);
        pd2.distance();  
	}

public void distance() 
{
      Double a=Math.sqrt(Math.abs(p1.getX()-p2.getX())*Math.abs(p1.getX()-p2.getX())+Math.abs(p1.getY()-p2.getY())*Math.abs(p1.getY()-p2.getY()));
      
      DecimalFormat df1= new DecimalFormat("###.0");
	  System.out.println("两点之间的距离为:"+df1.format(a));
	}

	public PointDemo(Point p1, Point p2)
	 {
		this.p1 = p1;
		this.p2 = p2;
	}	
}

现在给出运行结果现在在这里插入图片描述

#需要注意的问题

1.this关键字
当类的成员函数中参数或者是局部变量与类的属性同名时,类的属性会被覆盖,此时应用this关键字,调用函数所在对象的属性如this.x;
(1)this是当前对象引用的首地址,就是函数所在对象的首地址
(2)只能放到成员变量或成员函数前方。
(3) 只能在函数中。
(4)实质上就是返回函数所在对象的首地址,然后调用对象的各个属性、函数。
2.this(**)
(1)用在构造函数中,且只能放在第一条语句,只能使用一次,用来调用与当前构造函数重载的,但是入口参数不同的构造函数。
(2)实质上就是放在构造函数的第一条语句,调用同一对象中的构造函数,完成重载。
3.super关键字
(1)super可理解为指向其最近父类的指针。
(2)super是其父类对象的首地址,可调用父类属性函数。
4.super(* *)
(1)调用父类的构造函数,通过传入不同参数完成父类构造函数的重载。

#结尾

软件工程在读,大一转专业,代码为原创,已调试保证正确,文末会总结每道题所遇到的问题,以及我们需要掌握的知识点,以后会实时更新,大家有啥问题随时交流。

  • 17
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值