Java实验一—设计一个名为MyPoint的类_「已注销」的博客-程序员秘密

技术标签: java  

(仅记录自己的学习之路)
设计一个名为MyPoint的类,代表一个以x坐标和y坐标表示的点。该类包括:
(1) 一个创建点(0,0)的无参构造方法;
(2) 以指定坐标构建点的构造方法;
(3) 成员变量x和y的get和set方法;
(4) 一个名为distance的静态方法,返回两个MyPoint对象之间的距离。
提示:

  • 方法头:public static double distance(MyPoint p1, MyPoint p2)
  • 调用Math类的sqrt方法计算平方根,方法定义如下: public static double sqrt(double a)
    //返回正确舍入的 double 值的正平方根。

(5) 一个名为distance的方法,返回从该点到MyPoint类型的指定点之间的距离;
提示:

  • 方法头: public double distance(MyPoint p)
  • 调用上面的静态distance方法计算该点和指定点之间的距离

(6) 一个名为distance的方法,返回从该点到指定x和y坐标的另一个指定点之间的距离;
提示:

  • 方法头:public double distance(double x, double y)
  • 调用上面的静态distance方法计算该点和指定点之间的距离

要求如下:
(1) 所有成员变量用private修饰,所有方法用public修饰,画出该类的UML图并实现这个类;
(2) 编写一个测试程序,分别测试3个distance方法,将测试程序和MyPoint类放在不同的包里;

MyPoint类代码如下:

package MyPoint;

public class MyPoint {
    
	private double x;
	private double y;
	public MyPoint() {
    
		this.x = 0;
		this.y = 0;
	}                                      //创建点(0,0)的无参构造方法
	public MyPoint(double x, double y) {
    
		this.x = x;
		this.y = y;
	}                                      //以指定坐标构建点的构造方法
	public double getX() {
    
		return this.x;
	}                                     //x访问器
	public void setX(double x) {
    
		this.x = x;
	}                                     //x修改器
	public double getY() {
    
		return this.y;
	}                                     //y访问器
	public void setY(double y) {
    
		this.y = y;
	}                                     //Y修改器
	public static double distance(MyPoint p1, MyPoint p2) {
    
		return Math.sqrt((p1.getX() - p2.getX()) * (p1.getX() - p2.getX()) + (p1.getY() - p2.getY()) * (p1.getY() - p2.getY()));
	}                                     //两个MyPoint对象之间的距离
	public double distance(MyPoint p) {
    
		return distance(this, p);
	}                                    //该点到MyPoint类型的指定点之间的距离
	public double distance(double x, double y) {
    
		MyPoint m = new MyPoint();
		m.setX(x);
		m.setY(y);
		return distance(this, m);
	}                                    //该点到指定x和y坐标的另一指定点之间的距离
}

“该点”直接用this表示即可

测试类代码如下:

package TestPoint;

import java.util.Scanner;

import MyPoint.MyPoint;

public class testPoint {
    
	public static void main(String[] args) {
    
		Scanner input = new Scanner(System.in);
		MyPoint p1 = new MyPoint();
		MyPoint p2 = new MyPoint(input.nextDouble(), input.nextDouble());
		System.out.println(MyPoint.distance(p1, p2));     //计算p1和p2之间的距离
		System.out.println(p1.distance(p2));               //计算p1和p2之间的距离(p1是“该点”)
		System.out.println(p2.distance(p1));               //计算p1和p2之间的距离(p2是“该点”)
		System.out.println(p2.distance(5.8, 6.0));        //计算p2到点(5.8,6.0)之间的距离
	}
}

输出如下:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/TFBOYS_3/article/details/105165046

智能推荐

php 随机经纬度,使用php,API自动获取经纬度_vnam的博客-程序员秘密

使用curl而不是file_get_contents :$address = "India+Panchkula"; $url = "http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false&region=India"; $ch = curl_init(); curl_setopt($ch, ...

ios上传appStore所需各种图片尺寸_anyi1305的博客-程序员秘密

转载请注明出处!!!引导页:640 * 960640 *1136750 *13341080 *1920启动页:640 * 960640 *1136750 *1334768 *10241242 *22081536 *2048上传appStore所需各分辨率图片:3.5 640 * 9604 640 * 113...

使用java实现各种数据统计图(柱形图,饼图,折线图)_库克look的博客-程序员秘密

用Jfree实现条形柱状图表,java代码实现。可经常用于报表的制作,代码自动生成后可以自由查看。可以自由配置图表的各个属性,用来达到自己的要求和目的。本文给大家介绍使用java实现各种数据统计图(柱形图,饼图,折线图),需要的朋友可以参考下最近在做数据挖掘的课程设计,需要将数据分析的结果很直观的展现给用户,这就要用到数据统计图,要实现这个功能就需要几个第三方包了: jfreechart...

理解深度神经网络——DNN(Deep Neural Networks)_dnn原理_凌晨四点天使之城的博客-程序员秘密

深度神经网络——DNN 是深度学习的基础。要理解DNN最好先搞清楚它的模型。本篇博文主要对DNN的模型与前向传播算法做一个易于理解的总结。1.从感知机到神经网络的理解。感知机是这么一种模型:一个有若干输入和一个输出的模型。看下图:输出和输入之间学习到一个线性关系,得到中间输出结果:接着是一个神经元激活函数:从而得到想要的结果1或者-1.这个模型只...

Docker实战:制作一个包含tomcat和jdk环境的centos镜像文件_小诺大人的博客-程序员秘密

Docker实战:制作一个包含tomcat和jdk环境的centos镜像文件准备tomcat和jdk文件编写dockerfile文件,官方命名为Dockerfile,就不需要加-f参数了,在build时dockerfile会自动找。Dockerfile内容:FROM centosMAINTAINER yunnuo<[email protected]>COPY readme.txt /usr/local/readme.txtADD jdk-8u161-linux-x64.

react 点击弹窗之外关闭弹窗 demo_react 点击区域外关闭弹窗_林间风雨的博客-程序员秘密

最近做一个需求,想要点击空白的地方关闭弹窗,网上找了好久,没有一个能用的,后面用ref实现了,记录一下原理就是用ref来获取DOM元素,进行比对,如果被点击的event是弹窗本身或者包含弹窗,就不处理,如果弹窗之外的区域,就关闭react 的实现demo如下:interface IDemoState { open: boolean;} class Demo extends React.Component<{}, IDemoState> { public inpu

随便推点

【Android界面实现】使用PagerSlidingTabStrip实现滑动标签同步的ViewPager效果_赵凯强的博客-程序员秘密

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992    前面已经有三篇文章介绍如何在ViewPager加上指示器了,这也是最后一篇介绍关于ViewPager的指示器的文章了。    这篇文章介绍使用开源项目PagerSlidingTabStrip实现这种效果。这个开源项目和之前的ScrpllingTabs是同一个作者。    下面我们首先看一下

ESP8266简介:三种编程方式[email protected]嵌入式爱好者@的博客-程序员秘密

随着互联网的日益发展,智能家居的观念也逐渐深入人心。想要玩转智能家居,就离不开互联网,今天给大家介绍一款模块——ESP8266。小编将手把手教大家利用8266实现家电的控制。ESP8266 可以用来做串口透传,PWM 调控,远程控制开关:控制插座、开关、电器等。该模块有三种工作模式,大家可以根据自己的具体情况来选择:STA 模式:ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网...

android应用程序第一次启动时显示引导界面_人走丿茶凉的博客-程序员秘密

市面上好多优秀的应用(举例新浪微博、UC浏览器)都采用了欢迎页面与使用向导的方式给用户带来了良好的用户体验。 一般来说用户第一次安装应用或者安装了新版本后第一次进入应用都会显示成 欢迎页面-使用向导-主界面 的方式 用户没有安装新版本或者不是第一次进入的时候都会显示成 欢迎页面-主界面的方式想要实现这种不同的分支,我们就要使用一种变量来存储我们是否是第一次进入应用,当然这种变量不可能是存储在应用

pycharm报黄提示(黄色高亮警告):non-default parameter follows default parameter(定义时将没有默认值的参数放到了有默认值参数的后面)_Dontla的博客-程序员秘密

今天看QWidget源码的时候,看见里面有个参数被pycharm用红色波浪线标注,鼠标移动到上面,显示:non-default parameter follows default parameter原因是定义时将没有默认值的参数放到了有默认值参数的后面,默认参数值必须放在必选参数值后面虽然如此,但毕竟是别人写好的源码,我不好改它,况且使用起来也没有遇到什么问题,,,,参考文章:pytho...

解决Pycharm中使用OpenCV库不能代码补全的问题_穗麦子的博客-程序员秘密

*屡战屡败后,终于解决,分享出来,希望帮助到有需要的人。*工具:Pycharm2017、OpenCV4.1、Python3.71、到各自的官网去下载好安装包,安装好Pycharm、Python2、在DOS窗口中安装OpenCV安装包:pip install opencv-python(默认安装最新版本,可使用pip install opencv-python==版本号)3、并在Pych...

Linux性能优化实战_weixin-Alicemiss6的博客-程序员秘密

你是否也曾跟我一样,看了很多书、学了很多 Linux 性能工具,但在面对 Linux 性能问题时,还是束手无策?实际上,性能分析和优化始终是大多数软件工程师的一个痛点。但是,面对难题,我们真的就无解了吗?固然,性能问题的复杂性增加了学习难度,但这并不能成为我们进阶路上的“拦路虎”。在我看来,大多数人对性能问题“投降”,原因可能只有两个。一个是你没找到有效的方法学原理,一听到“系统”、“底层”这...

推荐文章

热门文章

相关标签