黑马程序员技术交流社区

标题: enum 问题 ~~~秋香姐 [打印本页]

作者: 郭宁    时间: 2012-5-17 10:25
标题: enum 问题 ~~~秋香姐
  1. public class eunmTest {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                
  8.                 TrafficLamp t1 = TrafficLamp.RED;
  9.                 TrafficLamp t2 = TrafficLamp.GREEN;
  10.                 TrafficLamp t3 = TrafficLamp.YELLOW;
  11.                 System.out.println(t1.getValue());
  12.                 System.out.println(t2.getValue());
  13.                 System.out.println(t3.getValue());
  14.                
  15.                
  16. //                运行结果:
  17. //                enum的有参构造函数运行了
  18. //                enum的无参构造函数运行了
  19. //                enum的有参构造函数运行了
  20. //                1
  21. //                0
  22. //                1
  23. //      为何 输出不是   1 0 3 ??
  24.                
  25.         }
  26.        
  27.         public enum TrafficLamp{
  28.                 RED(1),GREEN,YELLOW(3);       
  29.                 private int value;
  30.                 TrafficLamp(){
  31.                         System.out.println("enum的无参构造函数运行了");
  32.                         this.value = 0;
  33.                 }
  34.                 TrafficLamp(int v){
  35.                         System.out.println("enum的有参构造函数运行了");
  36.                         this.value = 1;
  37.                 }
  38.                 public int getValue(){
  39.                         return this.value;
  40.                 }
  41.         }

  42. }
复制代码

作者: 郭宁    时间: 2012-5-17 10:34
我错了~~~
因为是在初学 程序是一点一点跟着想法添加的~~
TrafficLamp(int v){

36.                        System.out.println("enum的有参构造函数运行了");

37.                        this.value = 1;//这里没改成   V~~  泪崩了

38.                }


作者: 李文富    时间: 2012-5-17 13:13
35.                TrafficLamp(int v){

36.                        System.out.println("enum的有参构造函数运行了");

37.                        this.value = 1;   //此处改为传人的参数v即可,

38.                }

eunm内部构造方法的调用,小问题,可能楼主没注意到,所以多注意下细节哦。
作者: 郭宁    时间: 2012-5-17 15:50
李文富 发表于 2012-5-17 13:13
35.                TrafficLamp(int v){

36.                        System.out.println("enum的有参构 ...

嗯,木有看到。谢啦~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2