4. 功能同上.
MyWindow.cs:
1
using System;2

/**//**//**//// <summary> 3
/// 运算类4
/// </summary> 5
class Operation 6


{ 7
private double _numberA = 0; 8
private double _numberB = 0; 9

10

/**//**//**//// <summary> 11
/// 数字A 12
/// </summary> 13
public double NumberA 14

{ 15

get
{ return _numberA; } 16

set
{ _numberA = value;} 17
} 18

19

/**//**//**//// <summary> 20
/// 数字B 21
/// </summary> 22
public double NumberB 23

{ 24

get
{ return _numberB; } 25

set
{ _numberB = value; } 26
} 27

28

/**//**//**//// <summary> 29
/// 得到运算结果30
/// </summary> 31
/// <returns></returns> 32
public virtual double GetResult() 33

{ 34
double result = 0;35
return result; 36
} 37
} 38

39
40

/**//**//**//// <summary> 41
/// 加法类42
/// </summary> 43
class OperationAdd : Operation 44


{ 45
public override double GetResult() 46

{ 47
double result = 0;48
result = NumberA + NumberB; 49
return result; 50
} 51
} 52

53

/**//**//**//// <summary> 54
/// 减法类55
/// </summary> 56
class OperationSub : Operation 57


{ 58
public override double GetResult() 59

{ 60
double result = 0; 61
result = NumberA -NumberB; 62
return result; 63
} 64
} 65

66

/**//**//**//// <summary> 67
/// 乘法类68
/// </summary> 69
class OperationMul : Operation 70


{ 71
public override double GetResult() 72

{ 73
double result = 0; 74
result = NumberA * NumberB; 75
return result; 76
} 77
} 78

79

/**//**//**//// <summary> 80
/// 除法类81
/// </summary> 82
class OperationDiv : Operation 83


{ 84
public override double GetResult() 85

{ 86
double result = 0; 87
if (NumberB==0) 88
throw new Exception(" 除数不能为。"); 89
result = NumberA / NumberB; 90
return result; 91
} 92
} 93

/**//**//**//// <summary> 94
///运算类工厂95
/// </summary> 96
class OperationFactory 97


{ 98
public static Operation createOperate(string operate) 99

{ 100
Operation oper = null; 101
switch (operate) 102

{ 103
case "+": 104

{ 105
oper = new OperationAdd(); 106
break; 107
} 108
109
case "-" :110

{ 111
oper = new OperationSub(); 112
break; 113
} 114

115
case "*": 116

{ 117
oper = new OperationMul(); 118
break; 119
} 120

121
case "/": 122

{ 123
oper = new OperationDiv(); 124
break; 125
} 126
} 127
return oper; 128
} 129
} 130

131
public class MyWindow132


{133
static void Main()134

{135
Operation oper;136
oper = OperationFactory.createOperate("+");137
oper.NumberA = 1;138
oper.NumberB = 2;139
double result = oper.GetResult();140
Console.WriteLine("result={0}", result);141
}142
}143

/**//*144
D:\C#\Code1>MyWindow145
result=3146
*/面向对象的三大特征:封装、继承与多态,这里用到了哪几个呢?
想一想,还有什么问题呢?
浙公网安备 33010602011771号