设计一个名为Point的类表示点。这个类包括: a) 2个私有的int类型的成员变量x、y,分别表示x和y坐标; b) 1个不带参数的构造方法; c) 1个带参数的构造方法,方法头如下,注意方法参数名称与成员变量名称相同: public Point(int x, int y) d) 1个movePoint(int dx, int dy)方法实现点的位置移动; e) 使用不带参数的构造方法创建Point对象p1;使用带参数的构造方法创建Point对象p2,要求用户输入p2的坐标,分别调用movePoint方法后,输出p1和p2经过位置移动之前和之后的坐标,要求用户输入在x方向和y方向要移动的距离。
时间: 2024-02-22 10:55:19 浏览: 145
好的,这是一个简单的Java类设计和实现的问题,我会逐步解答。
首先,我们需要定义一个名为Point的类,代码如下:
```java
public class Point {
private int x;
private int y;
public Point() {
this.x = 0;
this.y = 0;
}
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public void movePoint(int dx, int dy) {
this.x += dx;
this.y += dy;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
}
```
上面的代码实现了题目中要求的所有功能,其中:
- 私有成员变量x、y表示点的坐标;
- 不带参数的构造方法初始化x、y为0;
- 带参数的构造方法初始化x、y为给定的坐标值;
- movePoint方法实现点的位置移动;
- getX和getY方法分别返回点的x、y坐标。
接下来,我们需要在main方法中使用这个类,按照题目的要求创建两个Point对象,调用movePoint方法并输出结果。完整代码如下:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 使用不带参数的构造方法创建p1
Point p1 = new Point();
// 使用带参数的构造方法创建p2
System.out.print("请输入p2的x坐标:");
int x = scanner.nextInt();
System.out.print("请输入p2的y坐标:");
int y = scanner.nextInt();
Point p2 = new Point(x, y);
// 输出p1和p2的初始坐标
System.out.println("p1的初始坐标为:(" + p1.getX() + ", " + p1.getY() + ")");
System.out.println("p2的初始坐标为:(" + p2.getX() + ", " + p2.getY() + ")");
// 移动p1和p2的位置
System.out.print("请输入p1需要在x方向移动的距离:");
int dx1 = scanner.nextInt();
System.out.print("请输入p1需要在y方向移动的距离:");
int dy1 = scanner.nextInt();
p1.movePoint(dx1, dy1);
System.out.print("请输入p2需要在x方向移动的距离:");
int dx2 = scanner.nextInt();
System.out.print("请输入p2需要在y方向移动的距离:");
int dy2 = scanner.nextInt();
p2.movePoint(dx2, dy2);
// 输出p1和p2移动后的坐标
System.out.println("p1移动后的坐标为:(" + p1.getX() + ", " + p1.getY() + ")");
System.out.println("p2移动后的坐标为:(" + p2.getX() + ", " + p2.getY() + ")");
}
}
```
在运行这段代码时,可以按照提示输入p2的坐标和移动距离,然后输出p1和p2移动后的坐标。
阅读全文