
c#编程问题,请大侠务必帮忙
在程序中新建一个点类CzPoint,为其定义两个double类型的私有字段成员x和y,分别表示点的横坐标和纵坐标;为CzPoint定义两个公有属性X、Y,分别用于封装对字...
在程序中新建一个点类CzPoint,为其定义两个double类型的私有字段成员x和y,分别表示点的横坐标和纵坐标;为CzPoint定义两个公有属性X、Y,分别用于封装对字段x和y的读写访问;并定义CzPoint的带参数构造函数,在其中对字段x和y进行初始化;为CzPoint定义公有方法Move(double dx,double dy),用于按指定的水平距离dx和垂直距离dy移动坐标点; 对CzPoint类进行相等和不相等操作符重载。两个坐标点相等,是指它们的横坐标和纵坐标都相等;在主方法中定义点的对象对上述功能进行验证。
展开
2个回答
展开全部
class Program
{
static void Main(string[] args)
{
//验证
CzPoint p1 = new CzPoint(1, 2);
CzPoint p2 = new CzPoint(3, 4);
Console.WriteLine("字段,属性,构造函数验证:\np1({0},{1})\tp2({2},{3})\n", p1.X, p1.Y, p2.X, p2.Y);
p2.Move(-2, -1);
Console.WriteLine("公共方法验证:\np2({0},{1}\n)", p2.X, p2.Y);
Console.WriteLine("操作符重载验证1:\np1({0},{1}) == p2({2},{3})\t{4}\np1({0},{1}) != p2({2},{3})\t{5}\n", p1.X, p1.Y, p2.X, p2.Y, p1 == p2, p1 != p2);
p2.Move(0, -1);
Console.WriteLine("操作符重载验证1:\np1({0},{1}) == p2({2},{3})\t{4}\np1({0},{1}) != p2({2},{3})\t{5}", p1.X, p1.Y, p2.X, p2.Y, p1 == p2, p1 != p2);
Console.WriteLine("按回车关闭...");
Console.ReadLine();
}
}
public class CzPoint
{
//私有字段成员
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 CzPoint(double x, double y)
{
this.x = x;
this.y = y;
}
//公有方法
public void Move(double dx, double dy)
{
x += dx;
y += dy;
}
//操作符重载
public static bool operator ==(CzPoint left, CzPoint right)
{
return left.X == right.X && left.Y == right.Y;
}
public static bool operator !=(CzPoint left, CzPoint right)
{
return left.X != right.X || left.Y != right.Y;
}
}
==========================================
楼上的不够仔细,操作符重载错了哦~
{
static void Main(string[] args)
{
//验证
CzPoint p1 = new CzPoint(1, 2);
CzPoint p2 = new CzPoint(3, 4);
Console.WriteLine("字段,属性,构造函数验证:\np1({0},{1})\tp2({2},{3})\n", p1.X, p1.Y, p2.X, p2.Y);
p2.Move(-2, -1);
Console.WriteLine("公共方法验证:\np2({0},{1}\n)", p2.X, p2.Y);
Console.WriteLine("操作符重载验证1:\np1({0},{1}) == p2({2},{3})\t{4}\np1({0},{1}) != p2({2},{3})\t{5}\n", p1.X, p1.Y, p2.X, p2.Y, p1 == p2, p1 != p2);
p2.Move(0, -1);
Console.WriteLine("操作符重载验证1:\np1({0},{1}) == p2({2},{3})\t{4}\np1({0},{1}) != p2({2},{3})\t{5}", p1.X, p1.Y, p2.X, p2.Y, p1 == p2, p1 != p2);
Console.WriteLine("按回车关闭...");
Console.ReadLine();
}
}
public class CzPoint
{
//私有字段成员
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 CzPoint(double x, double y)
{
this.x = x;
this.y = y;
}
//公有方法
public void Move(double dx, double dy)
{
x += dx;
y += dy;
}
//操作符重载
public static bool operator ==(CzPoint left, CzPoint right)
{
return left.X == right.X && left.Y == right.Y;
}
public static bool operator !=(CzPoint left, CzPoint right)
{
return left.X != right.X || left.Y != right.Y;
}
}
==========================================
楼上的不够仔细,操作符重载错了哦~
展开全部
using System;
class Program1
{
static void Main()
{
CzPoint p1 = new CzPoint(3, 4);
CzPoint p2 = new CzPoint(5, 4);
string equal = null;
equal = (p1 == p2 ? "相等" : "不相等");
System.Console.WriteLine("移动前p1和p2" + equal);
p1.Move(2, 0);
equal = (p1 == p2 ? "相等" : "不相等");
System.Console.WriteLine("移动后p1和p2" + equal);
}
}
class CzPoint
{
private double x;
private double y;
public CzPoint(double x, double y)
{
this.x = x;
this.y = y;
}
public double X
{
get
{
return x;
}
set
{
x = value;
}
}
public double Y
{
get
{
return y;
}
set
{
y = value;
}
}
public void Move(double dx, double dy)
{
x = x + dx;
y = y + dy;
}
public static bool operator ==(CzPoint p1, CzPoint p2)
{
if (p1.x == p2.x && p1.y == p2.y)
{
return true;
}
return false;
}
public static bool operator !=(CzPoint p1, CzPoint p2)
{
if (p1.x == p2.x && p1.y == p2.y)
{
return false;
}
return true;
}
}
class Program1
{
static void Main()
{
CzPoint p1 = new CzPoint(3, 4);
CzPoint p2 = new CzPoint(5, 4);
string equal = null;
equal = (p1 == p2 ? "相等" : "不相等");
System.Console.WriteLine("移动前p1和p2" + equal);
p1.Move(2, 0);
equal = (p1 == p2 ? "相等" : "不相等");
System.Console.WriteLine("移动后p1和p2" + equal);
}
}
class CzPoint
{
private double x;
private double y;
public CzPoint(double x, double y)
{
this.x = x;
this.y = y;
}
public double X
{
get
{
return x;
}
set
{
x = value;
}
}
public double Y
{
get
{
return y;
}
set
{
y = value;
}
}
public void Move(double dx, double dy)
{
x = x + dx;
y = y + dy;
}
public static bool operator ==(CzPoint p1, CzPoint p2)
{
if (p1.x == p2.x && p1.y == p2.y)
{
return true;
}
return false;
}
public static bool operator !=(CzPoint p1, CzPoint p2)
{
if (p1.x == p2.x && p1.y == p2.y)
{
return false;
}
return true;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询