构建一个类Point,它提供两个公有的构造函数,一个没有参数的Point构造函数和一个有两个double参数的构造函数。另外在该类中提供一个静态方法计算两个点的直线距离,传入参数为两个Point类实例。然后设计一个测试类来对Point类进行使用。
提示:先定义两个变量来存储Point点的X,Y坐标;无参的构造函数将X,Y坐标赋为0;有参的构造函数将传入的参数分别赋给X,Y坐标。
以下是我的代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace Point
{
class Point
{
public double X;
public double Y;
public Point()
{
X = 0;
Y = 0;
}
public Point(double x, double y)
{
X = x;
Y = y;
}
public static double distance(Point X, Point Y)
{
return (X.X - Y.X) * (X.X - Y.X) - (X.Y - X.Y) * (X.Y - X.Y);
}
public static void Main(string[] args)
{
double x, y;
x = double.Parse(Console.ReadLine());
y = double.Parse(Console.ReadLine());
Point Point = new Point(x,y);
double m = Point.distance(Point.X,Point.Y);
Console.WriteLine(m);
}
}
}
问题:题目中的“另外在该类中提供一个静态方法计算两个点的直线距离,传入参数为两个Point类实例。然后设计一个测试类来对Point类进行使用。”该如何实现?
思路模糊,而且代码中有错误,该如何修改?请指点,谢谢~~
C#编程问题?
- 提问者网友:酱爆肉
- 2021-06-01 07:00
- 五星知识达人网友:渡鹤影
- 2021-06-01 07:47
我的习惯:
/// <summary>
/// 实体类
/// </summary>
class Point
{
private double _X;
private double _Y;
public double X
{
get { return _X; }
set { _X = value; }
}
public double Y
{
get { return _Y; }
set { _Y = value; }
}
public Point()
: this(0, 0)
{
}
public Point(double x, double y)
{
_X = x;
_Y = y;
}
}
/// <summary>
/// 处理类
/// </summary>
static class PointImpl
{
public static double Distance(Point p1, Point p2)
{
//return (p1._X - Y._X) * (p1._X - Y._X) - (X._Y - X._Y) * (X._Y - X._Y);
double x, y, z;
x = p2.X - p1.X;
y = p2.Y - p1.Y;
z = System.Math.Sqrt(x * x + y * y);
return z;
}
}
class Program
{
static void Main(string[] args)
{
double x1, y1, x2, y2;
x1 = double.Parse(Console.ReadLine());
y1 = double.Parse(Console.ReadLine());
Point p1 = new Point(x1, y1);
x2 = double.Parse(Console.ReadLine());
y2 = double.Parse(Console.ReadLine());
Point p2 = new Point(x2, y2);
double m = PointImpl.Distance(p1, p2);
Console.WriteLine(m);
Console.ReadKey(true);
}
}