频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
enum枚举
2017-01-06 09:25:04         来源:小蚂蚁的博客  
收藏   我要投稿

enum枚举:Java中,枚举类型是一个class,每个枚举类型常量都被隐式声明为public、static、final的

// 每个枚举常量都被隐式声明为Apple的公有、静态final成员
enum Apple {
Jonathan, GoldenDel, RedDel, Winesap, Cortland
}

class EnumDemo {
public static void main(String args[])
{
Apple ap;

ap = Apple.RedDel;

// Output an enum value.
System.out.println("Value of ap: " + ap);
System.out.println();

ap = Apple.GoldenDel;

// Compare two enum values.
if(ap == Apple.GoldenDel)
System.out.println("ap contains GoldenDel.\n");

// Use an enum to control a switch statement.
switch(ap) {
case Jonathan:
System.out.println("Jonathan is red.");
break;
case GoldenDel:
System.out.println("Golden Delicious is yellow.");
break;
case RedDel:
System.out.println("Red Delicious is red.");
break;
case Winesap:
System.out.println("Winesap is red.");
break;
case Cortland:
System.out.println("Cortland is red.");
break;
}
}
}

value()方法返回一个包含枚举常量列表的数组
valueOf(String str)方法返回与传递参数str的字符串相对应的枚举常量
// Use the built-in enumeration methods.

// An enumeration of apple varieties.
enum Apple {
Jonathan, GoldenDel, RedDel, Winesap, Cortland
}

class EnumDemo2 {
public static void main(String args[])
{
Apple ap;

System.out.println("Here are all Apple constants");

// use values()
Apple allapples[] = Apple.values();
for(Apple a : allapples)
System.out.println(a);

System.out.println();

// use valueOf()
ap = Apple.valueOf("Winesap");
System.out.println("ap contains " + ap);

}
}

Java的枚举类型有构造函数、可以添加实例和方法和接口,不能继承其他类也不能是超类
// Use an enum constructor.
enum Apple {
Jonathan(10), GoldenDel(9), RedDel, Winesap(15), Cortland(8);

private int price; // price of each apple

// Constructor
Apple(int p) { price = p; }

// Overloaded constructor
Apple() { price = -1; }

int getPrice() { return price; }
}

枚举类中ordinal()方法可以返回检索的下标值,而compareTo()方法用于比较相同类型的两个枚举量常量的下标值
// Demonstrate ordinal(), compareTo(), and equals().

// An enumeration of apple varieties.
enum Apple {
Jonathan, GoldenDel, RedDel, Winesap, Cortland
}

class EnumDemo4 {
public static void main(String args[])
{
Apple ap, ap2, ap3;

// Obtain all ordinal values using ordinal().
System.out.println("Here are all apple constants" +
" and their ordinal values: ");
for(Apple a : Apple.values())
System.out.println(a + " " + a.ordinal());

ap = Apple.RedDel;
ap2 = Apple.GoldenDel;
ap3 = Apple.RedDel;

System.out.println();

// Demonstrate compareTo() and equals()
if(ap.compareTo(ap2) < 0)
System.out.println(ap + " comes before " + ap2);

if(ap.compareTo(ap2) > 0)
System.out.println(ap2 + " comes before " + ap);

// 对下标值进行比较
if(ap.compareTo(ap3) == 0)
System.out.println(ap + " equals " + ap3);

System.out.println();

if(ap.equals(ap2))
System.out.println("Error!");

// 判断ap和ap3的值是否相等
if(ap.equals(ap3))
System.out.println(ap + " equals " + ap3);

// 说明ap和ap3指向的是同一个引用
if(ap == ap3)
System.out.println(ap + " == " + ap3);

}
}

 


点击复制链接 与好友分享!回本站首页
上一篇:对象池
下一篇:centos7下Ice安装
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站