题目:
自定义一个“西瓜”类,要求如下:
具有多个有意义的字段;
可以实现对象之间的“+”(可以为重量相加);
编写程序验证上述要求
using System;
namespace ConsoleApp4._7_2
{
delegate double mydelegate(double x, double y);
class MyDeClass
{
public double add(double x,double y)
{ return x + y; }
public double sub(double x,double y)
{ return x - y; }
public double mul(double x,double y)
{ return x * y; }
public double div(double x,double y)
{ return x / y; }
}
class BigWatermelon //重量
{
private double M;//重量
private double m2;//小西瓜重量
public BigWatermelon(double M,double m2)
{
this.M = M;
this.m2 = m2;
}
}
class LittleWatermelon_M
{
public double m1;//重量1
public double m2;//重量2
public LittleWatermelon_M(double m1,double m2)
{
this.m1 = m1;
this.m2 = m2;
}
}
class LittleWatermelon_V
{
public double v1;//重量1
public double v2;//重量2
public LittleWatermelon_V(double v1, double v2)
{
this.v1 = v1;//体积1
this.v2 = v2;//体积2
}
}
class Program
{
static void Main(string[] args)
{
LittleWatermelon_M wm = new LittleWatermelon_M(6,8);
LittleWatermelon_V wv = new LittleWatermelon_V(7, 8);
MyDeClass obj = new MyDeClass();
mydelegate p = new mydelegate(obj.add);
double M = p(wm.m1, wm.m2);
Console.WriteLine("重量:小西瓜1重量{0} + 小西瓜2的重量{1} = 大西瓜重量 {2}KG", wm.m1,wm.m2,p(wm.m1, wm.m2));
Console.WriteLine("体积:小西瓜1体积{0} + 小西瓜2的体积{1} = 大西瓜体积 {2}KG", wv.v1,wv.v2,p(wv.v1, wv.v2));
BigWatermelon W = new BigWatermelon(M,wm.m2);
mydelegate p1 = new mydelegate(obj.sub);
Console.WriteLine("重量:大西瓜重量{0} - 小西瓜2的重量{1} = 小西瓜1重量 {2}KG",M,wm.m2, p1(M, wm.m2));
/*
p = new mydelegate(obj.mul);
Console.WriteLine("5*8={0}", p(5, 8));
p = new mydelegate(obj.div);
Console.WriteLine("5/8={0}", p(5, 8));
*/
}
}
}
运行结果: