背景:
今天启动了一个新的项目,由于要从之前的旧项目中拿过来一些代码,所以就看了下公司之前项目代码,发现有定义的常量类,也有枚举类,然后就在想着两者的功能差不多,那他们之间到底有什么区别呢,所以就决定了解下enum枚举
 
一、简介
Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。
 
二、基本用法
1.作为常量使用
一个完整的枚举类型示例
/**
 * 枚举
 * @author Dreyer
 * @since 1.0
 * @date 2015-5-28 下午8:16:31
 */
public enum EnumDemo1 {
 Small(1),
 Medium(2),
 Larger(3);
 
 private int code;
 
 private EnumDemo1 (int code) {
  this.code = code;
 }
 
 //作用相对于下面的toString()方法
 public int getCode () {
  return this.code;
 }
 
 @Override
 public String toString() {
  return String.valueOf(this.code);
 }
 
}
 
2.可以用于switch()语句
EnumDemo1 size = EnumDemo1.Small;
 
 public void printInfo() {
  switch (size) {
  case Small:
   System.out.println("the size is small");
   break;
  case Medium:
   System.out.println("the size is medium");
   break;
  case Larger:
   System.out.println("the size is large");
   break;
  }
 }
 
 
注意点:
1.枚举类型的构造函数只能是private或者默认的修饰符
2.所有的枚举值都是public static final修饰的,如同我们定义的常量一样
3.枚举中可以定义普通方法
4.枚举还能实现接口
 
三、Enum和enum的区别
Enum表示一个类,它里面封装了一下方法用于对枚举的基本操作
enum表示一个变量类型,是一种数据类型,它用来定义枚举
 
 
四、enum和常量的区别
待更新...
 
 
五、附加姿势
因为看公司定义的常量类都是一个class,然后就public static final...
在网上看到接口常量类觉得更不错,因为它是一个接口,所以里面的变量默认就是public static final修饰的
 

java之enum枚举(2015年05月28日)的更多相关文章

  1. Bootstrap之Footer页尾布局(2015年05月28日)

    直接上页尾部分的代码: <!--采用container-fluid,使得整个页尾的宽度为100%,并设置它的背景色--><footer class="container-f ...

  2. 2015年12月28日 Java基础系列(六)流

    2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流

  3. 1、关于Boolean(2015年05月30日)

    背景:刚在看Effective Java,看到一段关于Boolean提供一个返回实例的静态方法的例子,便去看了下Boolean的源码,发现有些内容是之前没注意到的,于是便有了下面这些. 1. Bool ...

  4. 初识CSS3之媒体查询(2015年05月31日)

    一.什么是媒体查询 媒体查询是面向不同设备提供不同样式的一种实现方式,它可以为每种类型的用户提供最佳的体验,也是响应式设计的实现方式. 现今每天都有更多的手机和平板电脑问市.消费者能够拥有可想象到的各 ...

  5. 实用工具推荐(Live Writer)(2015年05月26日)

    1.写博客的实用工具 推荐软件:Live Writer 使用步骤: 1.安装 Live Essential 2011,下载地址:http://explore.live.com/windows-live ...

  6. Font Awesome图标字体库(2015年05月25日)

    Font Awesome是一款非常棒的字体图标工具,给个地址,具体的自已慢慢去体会,只能帮你到这儿了...... http://fortawesome.github.io/Font-Awesome/ ...

  7. Bootstrap插件之Carousel轮播效果(2015年-05月-21日)

    <!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"& ...

  8. 初识Less(2015年05月23日)

    因为最近在研究Bootstrap,然后才了解到Less,听说Less很强大,又听说Bootstrap+Less会更搭,所以就决定也顺带了解下Less的相关知识. come  on...... 一.简介 ...

  9. Bootstrap简单Demo(2015年05月-18日)

    Bootstrap的简单使用 1.Bootstrap是什么? 这是Bootstrap官网上对它的描述:Bootstrap是最受欢迎的HTML.CSS和JS框架,用于开发响应式布局.移动设备优先的WEB ...

随机推荐

  1. javascript 工具方法(长期更新)

    //密码强度判断,低级:不到八位:中级:八位以上:高级:八位以上并加入了特殊符号. function pwdStrength(pwd) { var pwdLevel; if ((pwd &&a ...

  2. Serializable 序列化使用限制

    序列化不能跨语言 如果单纯为了传数据,完全可以被json代替.

  3. ManagementFactory (一) getClassLoadingMXBean

    ClassLoadingMXBean case import java.lang.management.ClassLoadingMXBean; import java.lang.management. ...

  4. C#学习笔记(八):扩展方法

    还记得第一次使用DOTween时,发现缓动方法竟然是可以直接用Transform对象中调用到,当时就被震撼到了(那是还是C#小白一只).好了不多说了,今天来学习一下C#的这个特性——扩展方法. 扩展方 ...

  5. iOS开发-Core Location和Map Kit

    一.Core Location确定物理位置 利用以下3种技术: 1.GPS(最精确的) 2.蜂窝基站ID定位(cell ID Location) 3.WPS(Wi-Fi Positioning Ser ...

  6. 教你50招提升ASP.NET性能(十七):不要认为问题只会从业务层产生

    (28)Don’t assume that problems can only arise from business logic 招数28: 不要认为问题只会从业务层产生 When beginnin ...

  7. 为什么监听不到开机广播action.BOOT_COMPLETED

    为什么监听不到开机广播action.BOOT_COMPLETED 1. 说明 Android手机开机后,会发送android.intent.action.BOOT_COMPLETED广播,监听这个广播 ...

  8. BZOJ 2733: [HNOI2012]永无乡 启发式合并treap

    2733: [HNOI2012]永无乡 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...

  9. C/C++程序猿必须熟练应用的开源项目

    作为一个经验丰富的C/C++程序猿, 肯定亲手写过各种功能的代码, 比方封装过数据库訪问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件訪问的类, 封装过UI界面库等, 也在实际的项目中应 ...

  10. Android PhoneGap源码分析——白名单

    对于单独的Web app应用来说,加载进来的url一般不能保证它的安全性.那么如何来处理url安全性的问题呢. 让我们来看看PhoneGap是如何做的. PhoneGap采用了白名单的形式,认为在白名 ...