浅析对java枚举类型的认识

而想弄明白枚举类型是什么,就要把他和类进行对比了。用ecplise创建一个类,你要使用这个类就得new一个对象出来对吧(当然了,别较真,说我用他的静态属性和方法);而当你用ecplise创建一个枚举类型时,在使用时是不需要再new的,它本身就创建好了几个对象在其内部,这也就是枚举和类的最大区别。

首先,先创建一个枚举,看一下它到底是什么东西。

我们给这个枚举对象加入两个对象(red和green),一个属性,一个构造方法,还有setget方法,这样一个简单的枚举类型就创建好了。

说说枚举的用处:一般用于配置信息,比如颜色 赤=1、橙=2、黄=3、绿=4、青=5、蓝=6、紫=7,这就可以创建一个枚举类型,你可以把数字存储到数据库,在代码里面显示汉字,这样使得代码易懂。(当然了,你非得在数据库中存储汉字也行)。再比如,用于错误信息返回:成功=1、失败=-1、部分成功=0,这样你在代码里面写的时候,别人一看就一目了然,你写0、1、-1谁知道什么意思。当然了最终的值还是数字,可是再别人读你程序的时候,看到的是有具体意思的单词。说了这么多,可能还是有点迷惑,下面就是项目中的栗子。

说说我的理解:java中一切皆对象,不例外,枚举(声明好的枚举类(暂且叫他枚举类))也是一个对象。枚举在创建完成之后就是一个对象(相对于类来说,对于类的对象需要new出来,才是一个对象,而对于枚举来说,不需要new,本身就是一个对象,仿佛枚举类的所有成员和方法都是静态的意思),枚举的结构一般包括【对象,属性,构造方法,setget方法】;对于一个创建好的枚举对象,可以通过枚举名称+对象名称+setget进行操作。

关键点:一个创建好的枚举类型本身就声明好了自己的对象。

占内存:Enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android.意思就是相对于类的静态属性来说,枚举要多占一些内存空间。占内存:Enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android.意思就是相对于类的静态属性来说,枚举要多占一些内存空间。

(0)

相关推荐

  • 浅析Java编程中枚举类型的定义与使用

    定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类型时,实质上您定义出来的类型继承自 java.lang.Enum 类,而每个枚举的成员其实就是您定义的枚举类型的一个实例(Instance),它们都被默认为 final,所以您无法改变它们,它们也是 static 成员,所以您可以透过类型名称直接使用它们,当然最重要的,它们都 是公开的(public). 举个

  • 扒一扒 Java 中的枚举类型

    前言 在 Java 中, 枚举, 也称为枚举类型, 其是一种特殊的数据类型, 它使得变量能够称为一组预定义的常量. 其目的是强制编译时类型安全. 枚举类更加直观,类型安全.使用常量会有以下几个缺陷: 1. 类型不安全.若一个方法中要求传入季节这个参数,用常量的话,形参就是int类型,开发者传入任意类型的int类型值就行,但是如果是枚举类型的话,就只能传入枚举类中包含的对象. 2. 没有命名空间.开发者要在命名的时候以SEASON_开头,这样另外一个开发者再看这段代码的时候,才知道这四个常量分别代

  • 全面解读Java中的枚举类型enum的使用

    关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始switch,可是我想说,我代码里头来源的数据不太可能就是枚举,通常是字符串或数字,比如一个SQL我解析后首先判定SQL类型,通过截取SQL的token,截取出来可能是SELECT.DELETE.UPDATE.INSERT.ALTER等等,但是都是字符串,此时我想用枚举就不行了,我要将字符串转换成枚举怎么转呢,类似的情况还有从数据库取出数据根据一些类型做判定,从页面传入数据,根据不同的类型做不同的操作,但是都是字符串,不是枚举,悲剧的是我很

  • Java的枚举类型使用方法详解

    1.背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用public final static 方法定义的代码如下,分别用1 表示春天,2表示夏天,3表示秋天,4表示冬天. public class Season { public static final int SPRING = 1; public static final int SUMMER = 2; public static final int AUTUMN = 3; publ

  • java中的枚举类型详细介绍

    枚举中有values方法用于按照枚举定义的顺序生成一个数组,可以用来历遍.我们自定义的枚举类都是继承自java.lang.Enum,拥有一下实例中的功能: 复制代码 代码如下: //: enumerated/EnumClass.java // Capabilities of the Enum class import static net.mindview.util.Print.*; enum Shrubbery { GROUND, CRAWLING, HANGING } public clas

  • Java枚举类型enum的详解及使用

     Java枚举类型enum的详解及使用 最近跟同事讨论问题的时候,突然同事提到我们为什么Java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum 定义,所以也都没有注意过,面对突入起来的问题,还真有点不太清楚为什么有这样的定义.既然不明白就抽时间研究下吧. Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型.要了解枚举类型,建议大

  • java编程枚举类型那些事!枚举类型定义和重写枚举的方法

    什么是枚举类型 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中. 而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似.不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围. 简单的枚举类型定义 假如你希望创建一个颜色库,你可以这样定义枚举类型 enum Color {red, green, yellow, black}; 然后你就可以使用它 Color T = Color.red; if (T

  • 浅析对java枚举类型的认识

    而想弄明白枚举类型是什么,就要把他和类进行对比了.用ecplise创建一个类,你要使用这个类就得new一个对象出来对吧(当然了,别较真,说我用他的静态属性和方法):而当你用ecplise创建一个枚举类型时,在使用时是不需要再new的,它本身就创建好了几个对象在其内部,这也就是枚举和类的最大区别. 首先,先创建一个枚举,看一下它到底是什么东西. 我们给这个枚举对象加入两个对象(red和green),一个属性,一个构造方法,还有setget方法,这样一个简单的枚举类型就创建好了. 说说枚举的用处:一

  • 秒懂Java枚举类型(enum)

    理解枚举类型 枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性.安全性以及便捷性.下面先来看看什么是枚举?如何定义枚举? 枚举的定义 上述的常量定义常量的方式称为int枚举模式,这样的定义方式并没有什么错,但它存在许多不足,如在类型安全和使用方便性上并没有多少好处,如果存在定义int值相同的变量,混淆的几率还是很大的,编译器也不会提出任何警告,因此这种方式在枚举

  • java枚举类型-Enum

    目录 前言 应用 定义 基本Enum特性 Enum的静态导入 Enum中添加新方法 Switch语句中的Enum Enum的继承 EnumSet的使用 EnumMap的使用 常量相关方法 枚举值向枚举类型转换 前言 枚举是 Java1.5 引入的新特性,通过关键字 enum 来定义枚举类. 应用 定义 关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用. enum WeekEnum { Monday, Tuesday, Wednesday, T

  • Java枚举类型与泛型使用解读

    目录 一.枚举类型 1.使用枚举类型设置常量 2.枚举类型常用方法 3.枚举类型中的构造方法 二.泛型 1.泛型的常规用法 2.泛型的高级用法 总结 一.枚举类型 1.使用枚举类型设置常量 以往设置常量,通常将常量放置在接口中,这样在程序中就可以直接使用,并且该常量不能被修改,因为在接口中定义常量时,该常量的修饰符为final与static. 常规定义常量的代码如下所示. 例:在接口中定义常量的常规方式 public interface Constants{ public static fina

  • Java枚举类型在switch语句正确使用方法详解

    很多人也许会尝试写下这样的代码: ResultStructureEnum type = ResultStructureEnum.valueOf(userType); switch (type) { case ResultStructureEnum.STUDENT: ... break; case ResultStructureEnum.TEACHER: ... break; case ResultStructureEnum.PARENT: ... break; ... } # 这样编译不会通过,

  • 深入学习java枚举的应用

    一.枚举和静态常量区别 讲到枚举我们首先思考,它和public static final String 修饰的常量有什么不同. 我举枚举的两个优点: 1. 保证了类型安全:调用者无法随意传一个 int或者String 等值: 2.代码可读性非常高: 举个例子: 在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的.例如春夏秋冬四个数据元素组成了四季的"数据集". 你写了方法get(String se

  • 如何用好Java枚举让你的工作效率飞起来

    目录 1.概览 2.自定义枚举方法 3.使用 == 比较枚举类型 4.在 switch 语句中使用枚举类型 5.枚举类型的属性,方法和构造函数 6.EnumSet and EnumMap 6.1. EnumSet 6.2. EnumMap 7. 通过枚举实现一些设计模式 7.1 单例模式 7.2 策略模式 8. Java 8 与枚举 9. Enum 类型的 JSON 表现形式 10.总结 11. 补充 总结 1.概览 在本文中,我们将看到什么是 Java 枚举,它们解决了哪些问题以及如何在实践中

随机推荐