java 枚举类小结 Enum
好久没有接触枚举类了,差不多都忘了,今天抽出个时间总结一下吧。说实话,枚举类确实能够给我们带来很大的方便。
说明:枚举类它约定了一个范围,可以理解成只可以生成固定的几个对象让外界去调用,故枚举类中的构造方法都是private类型的。进而求其次,究竟枚举类到底有何特殊之处呢?
呈上代码一览(本人也是java Android 领域的菜鸟,如有错误之处,希望大家能够给以指点)
/**
* 测试枚举类
* @author Administrator
* @Date 2015-8-3
*/
public class EnumTest {
public static void main(String[] args) {
Person person1 = Person.MAN;
System.out.println(person1);
Person.MAN.work();
Person.WOMEN.work(); }
//测试Person的values()方法
public static void testValues(){
Person []persons = Person.values();
for(Person p:persons){ System.out.println(p); } }
//测试Person的valuesof()方法
public static void testValuesOf(){
Person person2 = Person.valueOf("MAN");
System.out.println(person2);
}
}
/**
* 测试接口
* @author Administrator
* @Date 2015-8-3
*/
interface PersonExtends{
void work();
}
/**
* 枚举类
* @author Administrator
* @Date 2015-8-3
*/
enum Person implements PersonExtends{
MAN("zhangsan","12"){
public void work(){
System.out.println("能干体力活,承受得住重量");
} },WOMEN("lisi","13"){
public void work(){ System.out.println("职场白领居多,能者居之");
}
};
private String name;
private String age;
private Person(String name,String age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public void method(){
System.out.println("The person is liming");
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString();
}
@Override
public void work() {
// TODO Auto-generated method stub
System.out.println("男人和女人工作的强度不同");
} }
说明一下我以上代码的几个关键的因素:
1.以前不太明白枚举类中一开始的对象如何去写,其实很简单,只是原始类的缩写而已,注意枚举类默认继承了Enum类,所以不能再继承。看如下代码:
private final Person2 MAN = new Person2("zhangsan","12");
其实枚举类中的对象和这个写法是一样的,只不过在enum声明的类中不能够这么写。可以这样理解,既然枚举类已经限定了范围,只能在枚举类中new对象,故构造方法是private类型,外界也不允许修改,故它就是不变的,所以声明成为final类型,对象初始化,这点相信大家都知道的。然而在enum中,已经知道这种约定,所以enum类中不允许这样写,把默认的都删掉,有点类似接口中的final static 。所以就剩下MAN("zhangsan","12")。强调一点,枚举对象必须写在类的开头。
2.在测试枚举类中,引用枚举类的对象相信大家一看就能明白。还有两个方法说明一下,一是values方法,取得枚举类中定义的枚举类的对象,返回的是一个枚举类的集合。如上依次遍历。。。其次是valuesof方法,根据名字获取枚举类型的对象,强调一下,valuesof(String str)中的参数必须是枚举类中对象的名字,否则将会报异常。
今天有点晚了。。明天再做更新啦。。
java 枚举类小结 Enum的更多相关文章
- java枚举类(enum) 基础知识讲解
枚举类是在java 5后新增的,可以用于封装常量,并且还可以为常量的使用提供一些方法. 定义枚举类的语法: public enum EnumName{ 成员1(A,B...),成员2(A,B...), ...
- Java分享笔记:自定义枚举类 & 使用enum关键字定义枚举类
在JDK1.5之前没有enum关键字,如果想使用枚举类,程序员需要根据Java语言的规则自行设计.从JDK1.5开始,Java语言添加了enum关键字,可以通过该关键字方便地定义枚举类.这种枚举类有自 ...
- Java 枚举类
如果要定义一个枚举类: public enum Size { SAMLL, MEDIUM, LARGE, EXTRA, EXTRA_LARGE}; 实际上,这个声明定义的类型是一个类,它刚好有4个实例 ...
- Java 枚举类详解
1. 枚举类定义 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象,这种实例有限而且固定的类,在Java里被称为枚举类. 2. 早期实现枚举的方式 public static f ...
- Java基础15:深入剖析Java枚举类
更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...
- Kotlin——中级篇(五):枚举类(Enum)、接口类(Interface)详解
在上一章节中,详细的类(class)做了一个实例讲解,提到了类(class)的实例化.构造函数.声明.实现方式.和Java中类的区别等.但是对于Kotlin中的类的使用还远远不止那些.并且在上文中提到 ...
- 夯实Java基础系列14:深入理解Java枚举类
目录 初探枚举类 枚举类-语法 枚举类的具体使用 使用枚举类的注意事项 枚举类的实现原理 枚举类实战 实战一无参 实战二有一参 实战三有两参 枚举类总结 枚举 API 总结 参考文章 微信公众号 Ja ...
- Java枚举类在生产环境中的使用方式
前言 Java枚举在项目中使用非常普遍,许多人在做项目时,一定会遇到要维护某些业务场景状态的时候,往往会定义一个常量类,然后添加业务场景相关的状态常量.但实际上,生产环境的项目中业务状态的定义大部 ...
- java 枚举类 enum 总结
枚举定义: enum是计算机编程语言中的一种数据类型.枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把这些量 ...
随机推荐
- go 安装
安装golang centos7 直接安装golang yum install golang centos6需添加软件源,然后再安装 rpm -ivh http://ftp.riken.jp/Linu ...
- Tinyxml的简单应用
参考文章: 1-> http://www.cnblogs.com/phinecos/archive/2008/03/11/1100912.html 2-> http://blog.csdn ...
- JS-007-富文本域操作
在日常 web 编写过程中,富文本域几乎成为了一个网站不可页面元素,同时,其也有着各种各样的实现方式,网络上也存在着各种各样的集成插件可供引用.此文以 js 获取.修改 163 邮箱写邮件时的邮件内容 ...
- 我的工具箱之MyEclipse9.1
下载地址:http://pan.baidu.com/s/1bbuN1s 这个工具是用来开发Java程序,自带JDK和Tomcat,功能全面周到,使用方便. 市面上MyEclipse版本很多,但都需要破 ...
- 开发者必知的8款App快速开发工具
开发者必知的8款App快速开发工具 “我有一个好创意,就差一个CTO……” “原生APP开发难度大,周期长,成本高,还没上线市场已经被占领了.” “APP版本迭代更新,都是企业的一道难关,没有一个一劳 ...
- Android之ScrollView嵌套ListView冲突
在ScrollView中嵌套使用ListView,ListView只会显示一行多一点.两者进行嵌套,即会发生冲突.由于ListView本身都继承于ScrollView,一旦在ScrollView中嵌套 ...
- C# 整形、双精度浮点型、字符串与字节型的相互转化
整形.双精度浮点型.字符串与字节型的相互转化,如下 using System; using System.Collections.Generic; using System.Linq; using S ...
- [ROS]2 尝试编译OrbSLAM
主要参考http://blog.csdn.net/dourenyin/article/details/48055441 1.编译g2o的过程中, 先是出现Eigen3依赖项的问题,要求Eigen3最低 ...
- T4自动生成数据库C#实体类学习(1)
第一个测试的Demo <#@ template language="C#" debug="True" hostspecific="True&qu ...
- Vue.2.0.5-Class 与 Style 绑定
Class 与 Style 绑定 数据绑定一个常见需求是操作元素的 class 列表和它的内联样式.因为它们都是属性 ,我们可以用v-bind 处理它们:只需要计算出表达式最终的字符串.不过,字符串拼 ...