打字猴:1.700441552e+09
1700441552 编写高质量代码:改善Java程序的151个建议 [:1700438109]
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 ]  [ 下一页 ]