设计一个Point类,私有成员变量pointX,pointY 公有成员函数void set(int x,int y);功能是设置坐标 公有成员函数void display();功能是显示坐标
时间: 2024-05-29 19:12:52 浏览: 114
回答:这是一个很好的问题,我很乐意为您回答。设计一个Point类,私有成员变量pointX和pointY,公有成员函数void set(int x,int y)用于设置坐标,公有成员函数void display()用于显示坐标。这个类可以这样设计:
class Point {
private:
int pointX;
int pointY;
public:
void set(int x, int y) {
pointX = x;
pointY = y;
}
void display() {
cout << "Point(" << pointX << ", " << pointY << ")" << endl;
}
};
以上是关于Point类的设计,希望对您有所帮助。如果还有其他问题,欢迎随时提出。
相关问题
定义基类Point(点)和派生类Circle(圆),求圆的周长。 Point类有两个私有的数据成员pointx、pointy(表示圆心位置)和一个公有方法getPosition。 Circle类新增一个私有的数据成员半径radius和一个公有的求周长的函数getCircumference(),该函数调用父类方法getPosition获得圆心的位置,且Circle类的构造方法调用基类的构造方法。 请编写Point和Circle类,编写程序时先对Point实例化获取圆心坐标,再对Circle类实例化求解圆面积。
好的,下面是Python的代码实现:
```python
import math
class Point:
def __init__(self, x, y):
self.__pointx = x
self.__pointy = y
def getPosition(self):
return (self.__pointx, self.__pointy)
class Circle(Point):
def __init__(self, x, y, radius):
super().__init__(x, y)
self.__radius = radius
def getCircumference(self):
x, y = super().getPosition()
circumference = 2 * math.pi * self.__radius
return circumference
# 实例化Point类
p = Point(2, 3)
# 获取圆心坐标
x, y = p.getPosition()
# 实例化Circle类
c = Circle(x, y, 5)
# 求解圆周长
circumference = c.getCircumference()
print("圆周长为:", circumference)
```
代码说明:
1. 定义基类`Point`,包括两个私有数据成员`__pointx`和`__pointy`,以及一个公有方法`getPosition()`,用于获取点的位置。
2. 定义派生类`Circle`,继承自`Point`类,新增一个私有数据成员`__radius`,以及一个公有方法`getCircumference()`,用于计算圆的周长。
3. 在`Circle`类的构造方法中,调用基类`Point`的构造方法,初始化圆心的位置。
4. 在`Circle`类的`getCircumference()`方法中,调用基类`Point`的`getPosition()`方法,获取圆心的位置,并用圆的半径计算周长。
5. 实例化`Point`类,获取圆心坐标。
6. 实例化`Circle`类,传入圆心坐标和半径,求解圆的周长。
希望这个例子能够帮到你!
给Point类添加以下几个求两点间距离的多态方法,并进行调用测试。 public double distance(Point p) 1求点与p点间距离 public double distance(int x,inty) /求点与(x,y) 点间距离 public static double distance(Point x,Pointy) /求x、y两点间距离
好的,关于你的问题,我们来逐一解答。
首先,给Point类添加以下多态方法:
```java
public class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public double distance(Point p) {
int dx = x - p.x;
int dy = y - p.y;
return Math.sqrt(dx * dx + dy * dy);
}
public double distance(int x, int y) {
return distance(new Point(x, y));
}
public static double distance(Point a, Point b) {
return a.distance(b);
}
}
```
这里我们添加了三个多态方法,分别是求点与p点间的距离、求点与(x,y)点间的距离和求两个点之间的距离。
其中,求点与p点间距离的方法直接调用了该点与另一个点之间的距离方法,而求点与(x,y)点间距离的方法则通过创建新的Point对象来调用第一个方法,最后求x、y两点间距离的方法则是调用了第一个方法。
接下来,我们进行测试:
```java
public static void main(String[] args) {
Point p1 = new Point(0, 0);
Point p2 = new Point(3, 4);
System.out.printf("distance between (%d, %d) and (%d, %d): %.2f%n",
p1.x, p1.y, p2.x, p2.y, p1.distance(p2));
System.out.printf("distance between (%d, %d) and (%d, %d): %.2f%n",
p1.x, p1.y, 3, 4, p1.distance(3, 4));
System.out.printf("distance between (%d, %d) and (%d, %d): %.2f%n",
p1.x, p1.y, p2.x, p2.y, Point.distance(p1, p2));
}
```
输出结果如下:
```
distance between (0, 0) and (3, 4): 5.00
distance between (0, 0) and (3, 4): 5.00
distance between (0, 0) and (3, 4): 5.00
```
我们可以看到,测试结果符合预期,三个多态方法均能正确计算两个点之间的距离。
阅读全文