为了对
苹果开发者Mike之前关于表达式的所有博文进行总结,我们将创建一个
Calculator类。它是一个简单的四则运算器,可用来执行加,减,乘,除运算。类似于常见的
计算器,这种计算器必须能够记录累加结果,就是通常所说的累加器。因此方法必须能够执行以下操作:将累加器设置为特定值,将其清空(或设置为0),以及在完成时检索它的值。以下是范例4-6包括了这个类的定义和一个用于试验该计算器的测试程序。
01
// Implement a Calculator class
02
03
#import <Foundation/Foundation.h>
04
05
@interface
Calculator
:
NSObject
06
{
07
double
accumulator
;
08
}
09
10
// accumulator methods
11
-
(
void
)
setAccumulator:
(
double
)
value
;
12
-
(
void
)
clear
;
13
-
(
double
)
accumulator
;
14
15
// arithmetic methods
16
-
(
void
)
add:
(
double
)
value
;
17
-
(
void
)
subtract:
(
double
)
value
;
18
-
(
void
)
multiply:
(
double
)
value
;
19
-
(
void
)
divide:
(
double
)
value
;
20
21
@end
22
23
24
@implementation
Calculator
25
26
-
(
void
)
setAccumulator:
(
double
)
value
27
{
28
accumulator
=
value
;
29
}
30
31
-
(
void
)
clear
32
{
33
accumulator
=
0
;
34
}
35
36
-
(
double
)
accumulator
37
{
38
return
accumulator
;
39
}
40
41
-
(
void
)
add:
(
double
)
value
42
{
43
accumulator
+=
value
;
44
}
45
46
-
(
void
)
subtract:
(
double
)
value
47
{
48
accumulator
-=
value
;
49
}
50
51
-
(
void
)
multiply:
(
double
)
value
52
{
53
accumulator
*=
value
;
54
}
55
56
-
(
void
)
divide:
(
double
)
value
57
{
58
accumulator
/=
value
;
59
}
60
61
@end
62
63
64
int
main
(
int
argc
,
const
char
*
argv
[])
65
{
66
NSAutoreleasePool
*
pool
=
[[
NSAutoreleasePool
alloc
]
init
];
67
Calculator
*
deskCalc
;
68
69
deskCalc
=
[[
Calculator
alloc
]
init
];
70
71
[
deskCalc
clear
];
72
[
deskCalc
setAccumulator:
100.0
];
73
[
deskCalc
add:
200.
];
74
[
deskCalc
divide:
15.0
];
75
[
deskCalc
subtract:
10.0
];
76
[
deskCalc
multiply:
5
];
77
NSLog
(
@"The result is %g"
,
[
deskCalc
accumulator
]);
78
[
deskCalc
release
];
79
80
[
pool
drain
];
81
return
0
;
82
}
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
最终输出结果:
The result is 50
Calculator类只有一个实例变量,以及一个用于保存累加器值的double变量。具体的代码其实很简单,看一遍大家都能明白。