第二小组

Java 5.0新特性 - 枚举类型enum

Java 语言的两个基本的元素是类(class)和接口(interface),现在Tiger又引入了枚举(enum).
其实枚举也不能算是严格意义上的新元素,它也是一种类,是一种特殊的类.所有的枚举都默认继承自java.lang.Enum,如果所有的类都默认继承自java.lang.Object一样.在Java提供的枚举中提供了比C/C++更多的功能,在这里可以像一般的类一样定义方法和属性,也可以有受限的构造函数(只能是private,且默认如此).

下面试写了一个枚举,以供参考.

package kb.enums;

public enum Temperature 
{
    VeryHigh(
100.0),    //!这样使用构造函数

    High,
    LessComfortable,
    Comfortable(
25.0),    //构造函数

    MoreComfortable,
    Low,
    VeryLow(
-15.0);        //构造函数

    
    
private double
 degree;
    
    Temperature( 
double d ) 
{    //private
        degree = d;
    }

    
    Temperature() 
{
        degree 
= -1.0
;
    }

    
    
public static String getMemberList() {
        StringBuffer buf 
= new
 StringBuffer();
        
        
for( Temperature t : Temperature.values() ) 
{
            buf.append( t.toString() 
+ "\n"
 );
        }

        
        
return buf.toString();
    }

}


package kb.enums;

public class UseTemperature 
{
    
    
private static StringBuffer out = new
 StringBuffer();
    
    
public static void main(String[] args) 
{
        
        Temperature temp 
=
 Temperature.High;
        
        
switch
( temp )
        
{
        
case
 Comfortable:
            
out.append( Temperature.Comfortable.toString() + "\n"
 );
            
break
;
        
default
:
            
out.append( "Uncomfortable\n"
 );
            
break
;
        }

        
        
out.append( Temperature.getMemberList() );
        
        System.
out.print( out
.toString() );
    }


}

posted on 2005-07-29 00:20 第二小组 阅读(3586) 评论(4)  编辑  收藏 所属分类: 学习感想

Feedback

# re: Java 5.0新特性 - 枚举类型enum 2005-08-09 08:49 hegen

为什么在编译的时候通不过呢?
编译的时候是不是有什么技巧呢?
  回复  更多评论   

# re: Java 5.0新特性 - 枚举类型enum 2005-08-10 19:47 第二小组

编译当然是要在5.0环境下才能通过啊,其它就没有了.  回复  更多评论   

# re: Java 5.0新特性 - 枚举类型enum 2005-08-28 12:38 superman

private double degree;
有什么作用?  回复  更多评论   

# re: Java 5.0新特性 - 枚举类型enum 2005-09-28 16:52 概念都搞错了. enum and Enum

这或许就是autoboxing的后果  回复  更多评论   



只有注册用户登录后才能发表评论。


网站导航: