JAVA提高二:枚举】的更多相关文章

JDK5.0中有一个非常有用的特性:枚举,这个特性以前在C语言中出现过,后来JDK出现后,开始觉得没有必要,但随着使用JAVA语言的人数增多,发现大家对枚举的需求非常大,于是又加入了此特性,下面我们来对枚举进行学习. 一.枚举的作用介绍 JDK5.0加入了一个全新类型的“类”——枚举类型.为此引入了一个新的关键字enum.可以这样来定义一个枚举类型: public enum Color { RED,White,Blue } 然后可以这样来使用:Color myColor = Color.Red;…
前面我们将java集合类的大部分类都进行了深入分析,但我们会发现一个共性问题就是并发的问题,那么如何解决呢?我们前面基本都是通过Collections的一个工具类来进行的解决,但实际大部分使用中人们普遍会使用并发的容器,在JDK1.5之后,针对基于散列的Map,提供了新的ConcurrentHashMap,针对迭代需求的list,提供了CopyOnWriteList..因此这里我进行下简单介绍和分析,具体的原理实现将在并发学习中进行详细的介绍. 一.集合总结 我们前面学习了很多集合类,这里我们做…
  目录(?)[-] 用法一常量 用法二switch 用法三向枚举中添加新方法 用法四覆盖枚举的方法 用法五实现接口 用法六使用接口组织枚举 用法七关于枚举集合的使用   DK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便. 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. Java代…
前言 译文链接:http://www.programcreek.com/2014/01/java-enum-examples/ Java中的枚举跟其它普通类很像,在其内部包含了一堆预先定义好的对象集合: 下面是若干个关于枚举的例子,可以帮助我们更好的使用枚举类型: 一个简单的例子 package simplejava; enum Color { RED, YELLOW, BLUE; // each is an instance of Color } public class Q5 { publi…
背景: 今天启动了一个新的项目,由于要从之前的旧项目中拿过来一些代码,所以就看了下公司之前项目代码,发现有定义的常量类,也有枚举类,然后就在想着两者的功能差不多,那他们之间到底有什么区别呢,所以就决定了解下enum枚举   一.简介 Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型.   二.基本用法 1.作为常量使用 一个完整的枚举类型示例 /**  * 枚举  * @author Dreyer  * @since 1.0  …
原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-import.html#1.2.values方法的使用: Java基础笔记 – 枚举类型的使用介绍和静态导入 本文由arthinking发表于4年前 | Java基础 | 暂无评论 |  被围观 8,332 views+ 1.枚举(Enum):1.1.枚举类型中的两个静态方法:1.2.values方法的使用:…
枚举类型介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似.不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围. 举个例子来说明一下,如果希望为彩虹描绘出七种颜色,你可以在 Java 程序中通过常量定义方式来实现. Public static class RainbowColor { // 红橙黄绿青蓝紫七种颜色的常量定义 public s…
黑马程序员:Java基础总结 枚举   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 枚举 为什么要有枚举 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday = 0;或即使使用常量方式也无法阻止意外. 枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错. 枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标. 用普通类如何…
版权声明:本文为博主原创文章,转载请注明出处,欢迎使劲喷 一.为啥用枚举&为啥要对枚举进行治理 1.先来说说为啥用枚举 表中某个字段标识了这条记录的状态,我们往往使用一些code值来标识,例如01成功,00失败. 多状态共性的东西可以常量保存,例如 class Constants{ public static final String success = "01"; public static final String failure= "00"; } 然而…
某些情况下一个类的对象是有限而且固定的,例如性别就只有两个类(考虑大众情况).因此这种实例有限而且固定的类,java里面叫枚举类.枚举类的关键字是enum,一些基本的命名规则和文件命名等细节和一般的类一样.但是具体还是有一些区别的: 1.枚举类不能显式继承其他父类 2.非抽象枚举类不能派生子类 3.枚举类的构造器只能使用private访问控制符 4.枚举类的所有实例必须在枚举类的第一行显式列出,系统会自动为这些实例添加public static final 修饰符 5.枚举类通常是不可变类,因此…
目录 1. 枚举的定义 1.1 传统的非枚举方法 1.2 枚举方法 1.3 定义总结 2 枚举的本质 2.1 继承 java.lang.Enum 2.2 final 类型 2.3 枚举常量本身就是该类的实例对象 2.4 构造函数私有化 2.5 添加了 $values[] 变量及两个方法 3 枚举的一般使用 3.1 类本身的方法 3.1.1 values() 3.1.2 valueOf(String) 3.2 继承的方法 3.2.1 ordinal() 3.2.2 compareTo() 3.2.…
java语法糖---枚举   在JDK5.0中提供了大量的语法糖,例如:自动装箱拆箱.增强for循环.枚举.泛型等.所谓“语法糖”就是指提供更便利的语法供程序员使用,只是在编译器上做了手脚,却没有提供对应的指令集来处理它. 下面要介绍的是枚举这个语法糖的原理. 其实enum就是一个普通的类,它继承自java.lang.Enum类. public enum Sex { MALE, FEMALE } public final class Sex extends java.lang.Enum{ pub…
这篇文章主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作数据库时的实例,需要的朋友可以参考下 关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始switch,可是我想说,我代码里头来源的数据不太可能就是枚举,通常是字符串或数字,比如一个SQL我解析后首先判定SQL类型,通过截取SQL的token,截取出来可能是SELECT.DELETE.UPDATE.INSERT.ALTER等等,但是都是字符串,此时我想用枚举就不行了,我要将字符串转换成枚举怎…
Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER("0","收入"),NON_BUSINESS("2","支出"); private String index; private String name; AccruedCleanEnum(String index, String name…
笔记: import java.lang.*; /**一:枚举类 : enum Season implements info { s1(),s2(),s3(),s4() }; //s1--s4 放在Season类的最上面! * 1.1.values() 返回一个包含整体的数组! * 2.valueof(String name),返回对应name的类, 必须是枚举类对象的名字,否则报错! * 3.实现接口,重写抽象方法 ,不同的枚举类可以有不同的方法 */ 枚举类代码: interface inf…
作用:让数据更简洁,更易读,增加代码可读性. 为了用1,2,3,4,5分别表示老师,学生,小组,班主任,后勤,可以直接设置一个变量,让roleType = 1,但这样写代码可读性差. 也可以定义一个成员类,分别给不同的静态成员赋1,2,3,4,5,在需要调用的地方,直接通过RoleType.xxx去进行变量的赋值,如下: package com.Gary2; public class CustomEnum { public static void main(String[] args) { //…
Java基础之枚举 作为1.5才增加的特性,枚举的使用并不是很多. 枚举其实就是一个比较特殊的类,就如同注解其实也是个特殊的接口一样(注解反编译之后没有了@符号).枚举使用enum关键字声明,通过反编译自定义的枚举可以看到类似下面的代码: //源代码 public enum Sex { MAN,WOMAN;//如果下面需要定义方法,这里需要加一个分号 } //反编译结果 public final class Sex extends Enum { public static final Sex M…
1.概览 在本文中,我们将看到什么是 Java 枚举,它们解决了哪些问题以及如何在实践中使用 Java 枚举实现一些设计模式. enum关键字在 java5 中引入,表示一种特殊类型的类,其总是继承java.lang.Enum类,更多内容可以自行查看其官方文档. 枚举在很多时候会和常量拿来对比,可能因为本身我们大量实际使用枚举的地方就是为了替代常量.那么这种方式由什么优势呢? 以这种方式定义的常量使代码更具可读性,允许进行编译时检查,预先记录可接受值的列表,并避免由于传入无效值而引起的意外行为.…
Enumy是一款功能强大的Linux后渗透提权枚举工具,该工具是一个速度非常快的可移植可执行文件,广大研究人员可以在针对Linux设备的渗透测试以及CTF的后渗透阶段利用该工具实现权限提升,而Enumy运行之后将能够帮助研究人员枚举出目标设备中常见的安全漏洞. 前言 哪些人应该使用Enumy 1.渗透测试人员,可以在目标设备上运行Enumy,并报告发现的安全问题: 2.CTF玩家可以利用Enumy来识别他们原本可能会错过或忽略的东西: 3.想识别本地设备中安全漏洞的话,同样可以使用Enumy:…
本文主要是回顾线程之间互斥和同步,以及线程之间通信,在最开始没有juc并发包情况下,如何实现的,也就是我们传统的方式如何来实现的,回顾知识是为了后面的提高作准备. 一.线程的互斥 为什么会有线程的互斥?可以想银行取款的问题,如果不做监控,多个人同时针对一个存折取钱的时候就会出现钱不对的问题,下面我们通过两个例子来分析一下线程的互斥问题以及为什么会产生这个线程? 例子1:一个人生产信息,一个人消费信息 面向对象的思想:类 信息类 生产者 消费者 public class TriditionalTh…
模式: 模板模式: 简单工厂模式: 适配器模式:  interface ICellPhone  {   void sendMsg();  } class Android implements ICellPhone  {   public void sendMsg()   {    System.out.println("我爱你");   }  } class ITCAST implements ICellPhone  {   public void sendMsg()   {    S…
C#代码: 利用扩展方法,扩展枚举功能 using System; using System.Collections.Generic; using System.Text; using System.Linq; namespace EnumExtension { // Define an extension method in a non-nested static class. public static class Extensions { public static Grades minP…
枚举 将一组有限集合创建为一种新的类型,集合里面的值可以作为程序组件使用: 枚举基本特性 以下代码是枚举的简单使用: 使用values方法返回enum实例的数组 使用ordinal方法返回每个enum实例的次序,从0开始 使用compareTo方法比较两个enum实例 使用==来比较enum实例 使用getDeclaringClass方法返回enum实例所属的enum类 使用valueOf方法根据指定的名字返回enum实例 package enumerated; enum Shrubbery {…
枚举类型是那些字段由一组固定常量组成的类型.常见的例子有:东南西北四个方向,星期几等. 所有枚举类型都隐式继承java.lang.Enum类型,因为java不支持多重继承,所以枚举不能继承其他任何类. java对枚举的支持是语言级的支持,switch-case结构无需加枚举名作为前缀. 多个枚举常量之间以逗号隔开,枚举常量列表最后可以以分号结束,如果有成员方法或成员变量,必须以分号结束. 枚举类型可以有成员方法和成员变量.如果有成员方法和成员变量,枚举常量列表要放在枚举体最开始,以分号结尾. 枚…
enumeration(枚举)是JDK1.5引入的新特性,放在java.lang包中. 1.枚举类方法介绍 package com.enums; public class TestEnum { public static void main(String[] args) { Season season = Season.autumn; System.out.println(season);//autumn System.out.println(season.compareTo(Season.au…
30:用enum代替int常量 当需要一组固定常量的时候,应该使用enum代替int常量,除了对于手机登资源有限的设备应该酌情考虑enum的性能弱势之外. 31:用实例域代替序数 应该给enum添加int域,而不是使用ordinal方法来导出与枚举关联的序数值.(几乎不应使用ordinal方法,除非在编写像EnumMap这样的基于枚举的通用数据结构) //WRONG public enum Fruit{ APPLE, PEAR, ORANGE; public int numberOfFruit(…
在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的.例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”.在Java中想表示这种数据集最容易想到的写法可能是这样,我们以表示一周五天的工作日来举例: Java代码 public class WeekDay {         public static final int MONDAY = 1;         public static final in…
部分数据使用枚举比较方便,java中的enmu不如c#中使用方便 记录备忘 以c#中的代码为例 public enum PlayState { /// <summary> /// 关闭 /// </summary> Closed = , /// <summary> /// 播放 /// </summary> Playing = , /// <summary> /// 随听 /// </summary> Listening = , //…
三种不同的用法 注意项: 1.在switch中使用枚举能使代码的可读性更强.   2.如果要自定义方法,那么必须在enum实例序列的最后添加分号.而且Java要求必须先定义enum实例.   3.所有的枚举都继承自java.lang.Enum类,由于Java不支持多继承,所以枚举对象不能再继承其他类.   4.如果想让枚举对应值,那么要写构造方法,也可以再覆盖toString()方法…
工厂方法模式(Factory Method Patter)是"创建对象的接口",让子类决定实例化哪一个类,并使一个类的实例化延迟到其子类.工厂方法模式在我们的开发工作中,经常会用到. 下面以汽车制造为例,看看一般的工厂方法模式是如何实现的,代码如下: public class Client { public static void main(String[] args) { //生产车辆 Car car = CarFactory.createCar(FordCar.class); }…