打字猴:1.700446713e+09
1700446713
1700446714 }
1700446715
1700446716 //构造函数定义鸟的颜色
1700446717
1700446718 public Sparrow(Color_color){
1700446719
1700446720 color=_color;
1700446721
1700446722 }
1700446723
1700446724 @Override
1700446725
1700446726 public Color getColor(){
1700446727
1700446728 return color;
1700446729
1700446730 }
1700446731
1700446732 }
1700446733
1700446734 //鸟巢,工厂方法模式
1700446735
1700446736 enum BirdNest{
1700446737
1700446738 Sparrow;
1700446739
1700446740 //鸟类繁殖
1700446741
1700446742 public Bird reproduce(){
1700446743
1700446744 Desc bd=Sparrow.class.getAnnotation(Desc.class);
1700446745
1700446746 return bd==null?new Sparrow():new Sparrow(bd.c());
1700446747
1700446748 }
1700446749
1700446750 }
1700446751
1700446752 程序比较简单,声明了一个Bird抽象类,并且标注了Desc注解,描述鸟类的颜色是白色的,然后编写了一个麻雀Sparrow类,它有两个构造函数,一个是默认的构造函数,也就是我们经常看到的麻雀是浅灰色的,另外一个构造函数是自定义麻雀的颜色,之后又定义了一个鸟巢(工厂方法模式),它是专门负责鸟类繁殖的,它的生产方法reproduce会根据实现类注解信息生成不同颜色的麻雀。我们编写一个客户端调用,代码如下:
1700446753
1700446754 public static void main(String[]args){
1700446755
1700446756 Bird bird=BirdNest.Sparrow.reproduce();
1700446757
1700446758 Color color=bird.getColor();
1700446759
1700446760 System.out.println(“Bird’s color is:”+color);
1700446761
1700446762 }
[ 上一页 ]  [ :1.700446713e+09 ]  [ 下一页 ]