enum 枚举类型

原创 2013年12月04日 14:11:49

实例介绍:

/**

 * @author
 * @description:
 * @tags:
 */
public class TestEnum {

------------1
/**
* 最普通的枚举
* @author
* @description:
* @tags:
*/
public enum ColorSelect{
//(红,绿,黄,蓝)
red, green, yellow, blue;
}

------------2
/**
* 枚举也可以像一般的类一样添加方法和属性,可以添加静态/非静态的属性或方法
* (一切都像和在一般类中做的那样)
* @author
* @description:
* @tags:
*/
public enum Season{
//(冬,春,夏,秋),必须写在最前面,否则编译会出错
winter, spring, summer, fall;

//添加属性
private final static String location = "Hot";

//添加方法
public static Season getBest(){
if(location.equals("Hot")){
return winter;
}else{
return summer;
}
}
}

------------3
/**
* 带有构造方法的枚举
* @author
* @description:
* @tags:
*/
public enum Temp{
//通过括号赋值,且必须有带参数的构造方法和属性,否则编译会出错
//(必须都赋值或都不赋值,如不赋值则不能写构造方法)
absoluteZero(-459), freezing(32), boiling(212), paperBurns(451);

private final int value;

public int getValue(){
return value;
}

//构造方法默认只能是private,保证只能内部使用
private Temp(int value){
this.value = value;
}
}

------------4

/**
* 带有构造方法的枚举
* @author
* @description:
* @tags:
*/
public enum MyContr{
//通过括号赋值,且必须有带参数的构造方法和属性,否则编译会出错
//(必须都赋值或都不赋值,如不赋值则不能写构造方法)
aab(-459,"aabNm"), aac(32,"aac"), aad(212,"aad");

private final int value;
private final String name;

public int getValue(){
return value;
}
public String getName(){
return name;
}

//构造方法默认只能是private,保证只能内部使用
private MyContr(int value, String name){
this.value = value;
this.name = name;
}
}


==============

==============

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub


//枚举是一种类型,用于定义变量,赋值时通过“枚举名.值”来取得相关枚举中的值
System.out.println("out1---");
ColorSelect m = ColorSelect.blue;
switch(m){
case red:{System.out.println("color is red");break;}
case green:{System.out.println("color is green");break;}
case yellow:{System.out.println("color is yellow");break;}
case blue:{System.out.println("color is blue");break;}
}

System.out.println("\nout2---");
System.out.println("遍历 ColorSelect中的值");
for(ColorSelect c: ColorSelect.values()){
System.out.println(c);
}

//枚举值在变量中的索引位置
System.out.println("\nout3---");
System.out.println("枚举ColorSelect中的值有:"+ColorSelect.values().length+"个");
System.out.println(ColorSelect.red.name()+" "+ColorSelect.red.ordinal());
System.out.println(ColorSelect.green.name()+" "+ColorSelect.green.ordinal());
System.out.println(ColorSelect.yellow.name()+" "+ColorSelect.yellow.ordinal());
System.out.println(ColorSelect.blue.name()+" "+ColorSelect.blue.ordinal());

//枚举类型变量实现了比较接口(comparable)
System.out.println("\nout4---");
System.out.println(ColorSelect.red.compareTo(ColorSelect.green));

System.out.println("\nout5---");
System.out.println(ColorSelect.red.green.yellow.blue);

System.out.println("\nout6---");
System.out.println(Season.getBest());

System.out.println("\nout7---");
for(Temp t:Temp.values()){
System.out.println(t+"的值是"+t.getValue());
}
}

System.out.println("\nout8---");
for(MyContr t:MyContr.values()){
System.out.println(t+"的值是"+t.getValue()+" "+t.getName());

System.out.println(t.toString().equals("aab"));
}


}


//--------------print result-------------------

out1---
color is blue

out2---
遍历 ColorSelect中的值
red
green
yellow
blue

out3---
枚举ColorSelect中的值有:4个
red 0
green 1
yellow 2
blue 3

out4---
-1

out5---
blue

out6---
winter

out7---
absoluteZero的值是-459
freezing的值是32
boiling的值是212
paperBurns的值是451


out8---
aab的值是-459 aabNm
true
aac的值是32 aac
false
aad的值是212 aad
false


golang笔记--获取随机端口和本机ip地址

l, _ := net.Listen("tcp", ":0") // listen on localhost port := l.Addr().(*net.TCPAddr).Port ip := ...
  • sll1983
  • sll1983
  • 2014年10月27日 13:13
  • 1530

Hiredis 实现 Redis 流水线

Pipelining(流水线)允许 Redis 客户端一次向 Redis 发送多个命令,Redis 在接收到这些命令后,按顺序进行处理,然后将请求的处理结果一次性返回给客户端。流水线可以减少客户端与 ...
  • lihao21
  • lihao21
  • 2017年06月10日 11:21
  • 1932

java枚举类型enum的使用

  • 2014年07月23日 13:57
  • 6KB
  • 下载

java中枚举类型Enum的用法

以前对Enum只有一个模糊的概念,最近项目中要用,所以就专门研究了一下: java的Enum枚举类型终于在j2se1.5出现了。之前觉得它只不过是鸡肋而已,可有可无。毕竟这么多年来,没有它,大家不都...

枚举类型的说明 enum

  • 2010年11月03日 11:30
  • 44KB
  • 下载

Android enum(枚举类型)使用详解

原始的接口定义常量: public interface IConstants { String MON = "Mon"; String TUE = "Tue"; Stri...

深入理解C++枚举类型enum

为啥需要枚举类型 编程语言中的所有特性都是为了满足某种需求,达到某个目的还出现.不会莫名其妙的出现在那. 枚举可以用来保存一组属性的值.enum的全称是enumeration意思是列举 看着这句...
  • weiwenhp
  • weiwenhp
  • 2013年01月07日 16:02
  • 45018

枚举类型Enum的含义分析

枚举类型是一种基本数据类型而不是构造数据类型,从jdk1.5才有的新类型,一般用来做全局常量。 特性: 1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例,可用...
  • pengkv
  • pengkv
  • 2015年03月11日 15:16
  • 1538

C语言之enum的用法和注意事项(枚举类型)

在学校学C语言的时候,很多人都没有经常用,以至于对enum不是很了解,后来工作的时候,我发现这个经常用到,于是就上网查了下详解。 1.enum的用法 枚举类型定义用关键字enum标识,形式为:  en...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:enum 枚举类型
举报原因:
原因补充:

(最多只允许输入30个字)