打字猴:1.700456644e+09
1700456644
1700456645 bookList.add(new ComputerBook(“Think in Java”,4300,“Bruce Eckel”,”
1700456646
1700456647 编程语言”));
1700456648
1700456649 }
1700456650
1700456651 //模拟书店买书
1700456652
1700456653 public static void main(String[]args){
1700456654
1700456655 NumberFormat formatter=NumberFormat.getCurrencyInstance();
1700456656
1700456657 formatter.setMaximumFractionDigits(2);
1700456658
1700456659 System.out.println(”–––—书店买出去的书籍记录如下:–––—”);
1700456660
1700456661 for(IBook book:bookList){
1700456662
1700456663 System.out.println(“书籍名称:”+book.getName()+”\t书籍作者:
1700456664
1700456665 “+book.getAuthor()+”\t书籍价格:”+formatter.format
1700456666
1700456667 (book.getPrice()/100.0)+“元”);
1700456668
1700456669 }
1700456670
1700456671 }
1700456672
1700456673 }
1700456674
1700456675 书店开始销售计算机书籍,运行结果如下所示。
1700456676
1700456677 ––––书店买出去的书籍记录如下:–––––––
1700456678
1700456679 书籍名称:天龙八部 书籍作者:金庸 书籍价格:¥32.00元
1700456680
1700456681 书籍名称:巴黎圣母院 书籍作者:雨果 书籍价格:¥56.00元
1700456682
1700456683 书籍名称:悲惨世界 书籍作者:雨果 书籍价格:¥35.00元
1700456684
1700456685 书籍名称:金瓶梅 书籍作者:兰陵笑笑生 书籍价格:¥43.00元
1700456686
1700456687 书籍名称:Think in Java 书籍作者:Bruce Eckel 书籍价格:¥43.00元
1700456688
1700456689 如果我是负责维护的,我就非常乐意做这样的事情,简单而且不需要与其他的业务进行耦合。我唯一需要做的事情就是在原有的代码上添砖加瓦,然后就可以实现业务的变化。我们来看看这段代码有哪几层含义。
1700456690
1700456691 首先,ComputerBook类必须实现IBook的三个方法,是通过IComputerBook接口传递进来的约束,也就是我们制定的IBook接口对扩展类ComputerBook产生了约束力,正是由于该约束力,BookStore类才不需要进行大量的修改。
1700456692
1700456693 其次,如果原有的程序设计采用的不是接口,而是实现类,那会出现什么问题呢?我们把BookStore类中的私有变量bookList修改一下,如下面的代码所示。
[ 上一页 ]  [ :1.700456644e+09 ]  [ 下一页 ]