Java 语言的两个基本的元素是类(class)和接口(interface),现在Tiger又引入了枚举(enum).
其 实枚举也不能算是严格意义上的新元素,它也是一种类,是一种特殊的类.所有的枚举都默认继承自java.lang.Enum,如果所有的类都默认继承自 java.lang.Object一样.在Java提供的枚举中提供了比C/C++更多的功能,在这里可以像一般的类一样定义方法和属性,也可以有受限的 构造函数(只能是private,且默认如此).
下面试写了一个枚举,以供参考.
package kb.enums;
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1fa987a29c6482f53d401256f96355eb.gif)
public enum Temperature
{
VeryHigh(100.0), //!这样使用构造函数
High,
LessComfortable,
Comfortable(25.0), //构造函数
MoreComfortable,
Low,
VeryLow(-15.0); //构造函数
private double degree;
![](https://i-blog.csdnimg.cn/blog_migrate/97e794c86028c5f5b5461ae5ef440a4c.gif)
Temperature( double d )
{ //private
degree = d;
}
![](https://i-blog.csdnimg.cn/blog_migrate/97e794c86028c5f5b5461ae5ef440a4c.gif)
Temperature()
{
degree = -1.0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/97e794c86028c5f5b5461ae5ef440a4c.gif)
public static String getMemberList()
{
StringBuffer buf = new StringBuffer();
![](https://i-blog.csdnimg.cn/blog_migrate/97e794c86028c5f5b5461ae5ef440a4c.gif)
for( Temperature t : Temperature.values() )
{
buf.append( t.toString() + "/n" );
}
return buf.toString();
}
}
package kb.enums;
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1fa987a29c6482f53d401256f96355eb.gif)
public class UseTemperature
{
private static StringBuffer out = new StringBuffer();
![](https://i-blog.csdnimg.cn/blog_migrate/97e794c86028c5f5b5461ae5ef440a4c.gif)
public static void main(String[] args)
{
Temperature temp = Temperature.High;
switch( temp )
![](https://i-blog.csdnimg.cn/blog_migrate/97e794c86028c5f5b5461ae5ef440a4c.gif)
{
case Comfortable:
out.append( Temperature.Comfortable.toString() + "/n" );
break;
default:
out.append( "Uncomfortable/n" );
break;
}
out.append( Temperature.getMemberList() );
System.out.print( out.toString() );
}
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
}