1700441553
编写高质量代码:改善Java程序的151个建议 建议40:匿名类的构造函数很特殊
1700441554
1700441555
在上一个建议中我们讲到匿名类虽然没有名字,但可以有一个初始化块来充当构造函数,那这个构造函数是否就和普通的构造函数完全一样呢?我们来看一个例子,设计一个计算器,进行加减乘除运算,代码如下:
1700441556
1700441557
//定义一个枚举,限定操作符
1700441558
1700441559
enum Ops{ADD, SUB}
1700441560
1700441561
class Calculator{
1700441562
1700441563
private int i, j,result;
1700441564
1700441565
//无参构造
1700441566
1700441567
public Calculator(){}
1700441568
1700441569
//有参构造
1700441570
1700441571
public Calculator(int_i, int_j){
1700441572
1700441573
i=_i;
1700441574
1700441575
j=_j;
1700441576
1700441577
}
1700441578
1700441579
//设置符号,是加法运算还是减法运算
1700441580
1700441581
protected void setOperator(Ops_op){
1700441582
1700441583
result=_op.equals(Ops.ADD)?i+j:i-j;
1700441584
1700441585
}
1700441586
1700441587
//取得运算结果
1700441588
1700441589
public int getResult(){
1700441590
1700441591
return result;
1700441592
1700441593
}
1700441594
1700441595
}
1700441596
1700441597
代码的意图是,通过构造函数输入两个int类型的数字,然后根据设置的操作符(加法还是减法)进行计算,编写一个客户端调用:
1700441598
1700441599
public static void main(String[]args){
1700441600
1700441601
Calculator c1=new Calculator(1,2){
[
上一页 ]
[ :1.700441552e+09 ]
[
下一页 ]