java 枚举 接口_java枚举接口

java中的枚举类

枚举类(enum),与class和interface关键字地位相同。

枚举类是一个特殊的类,可以有自己的成员变量、方法、构造器,可以实现一个或多个接口。一个java源文件中只能有一个public的enum类。

枚举类终究不是普通类,它与普通类有什么区别呢?

enum默认继承的是java.lan...

文章

云栖-lxl

2015-03-06

458浏览量

Java枚举

Java枚举有如下特点:

枚举类省略了private类型的构造函数,且构造函数只能为私有;

枚举的域(field)实质就是相应的枚举类的一个实例对象;

当访问枚举的实例(域)时才会执行构造方法实例化,例如下面的DAY实例只有被访问时才会被创建;

枚举的实例(域)都被static final修饰,...

文章

~信~仰~

2018-11-20

1350浏览量

Java基础15:深入剖析Java枚举类

版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/a724888/article/details/80173457

这位大侠,这是我的公众号:程序员江湖。 分享程...

文章

程序员黄小斜

2018-05-02

943浏览量

Java中枚举的线程安全性及序列化问题

--枚举是如何保证线程安全的

要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和class一样,只是一个关键字,他并不是一个类,那么枚举是由什么类维护的呢,我们简单的写一个枚举:

然后我们使用反编译,看看这段代码到底是怎么实现的,反编...

文章

java填坑路

2018-08-05

1234浏览量

为什么说枚举更占内存,枚举原理是什么?

为什么说枚举更占内存,枚举原理是什么?

从以前学习java 开始就听说枚举很占内存,然后老版Android开发指南文章也指出,枚举通常需要比静态常量多两倍的内存。你应该严格避免在android上使用枚举。那么究竟为什么说枚举更占内存呢?本文就是通过这种方法来分析枚举为什么占内存的,而不是说拒绝枚...

文章

推荐码发放

2018-04-12

1303浏览量

java注解

注解是什么? 注解是一种语言形式而已,类似于接口、枚举这些语言形式。   类,枚举,接口,注解都是一种语言形式,他们是平行的,既然有形式,那么就应当有规范。 “类”的形式    class  类名 “接口”的形式    interface 接口名 “枚举”的形式  enum 枚举名...

文章

effort880829

2016-08-15

534浏览量

Java 枚举

Java 枚举

知识点

概念

enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。

在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下:

enum Color { RED, GREEN, BLUE }

如果枚举不添加任何方法,枚举值默认为从0开始的有...

文章

guitar_zp

2016-11-24

693浏览量

我看JAVA 之 枚举类型

我看JAVA 之 枚举类型

注:基于jdk11

Enum

Enum是Java(1.5+)中所有枚举类型的公共基类。有关枚举的更多信息,包括编译器合成的隐式声明方法的描述,可以在Java™语言规范的

[第8.9节](https://docs.oracle.com/javase/specs/jls/s...

文章

awenhaowenchao

2020-01-19

482浏览量

java基础加强_补充笔记

java基础加强

1、JDK5.0新特性介绍

jdk5.0的代号为:tiger(老虎)

2、静态导入

作用:静态导入类的某个静态成员(包括静态属性和静态方法)。语法:import static java.lang.System.out;import static java.util.Array...

文章

黑泽明军

2018-06-06

1059浏览量

java枚举类型学习

用的不多,但用的时候仅仅简单的使用,不太明白原理,今天就系统的学一下枚举。参考:java编程思想。

Update:

枚举可以当做数据字典来存储,通常只要一个字段即instance本身,toString()或者name()打印的string。

枚举的数据都是一个实例对象,比如 enum Test{...

文章

文艺小青年

2017-11-24

828浏览量

Java自定义注解在安卓开发中的简单运用

定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、接口、枚举、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

作用分类:

①编写文档:通过代码里标识的元数据生成...

文章

android_尋道

2017-04-11

672浏览量

java单例模式

java使用单例设计模式的方式有很多种,比如饿汉式,懒汉式,静态内部类式,双重检测锁式以及枚举方式,这里主要讲枚举式。

一、案例

1、新建一个接口类

/**

* @author Gjing

**/

public interface MySingleton {

void doSometh...

文章

阿靖哦

2019-06-10

1090浏览量

Java 枚举类型 enum

以下使用 JDK 版本为:1.8.0_121

枚举类型的引入

枚举类型是 Java 5 中增加的一个小特性,在此之前,实现枚举的方式为定义编译期常量形式。而代码中使用编译期常量的方式在理解性和安全性方面存在不足,单纯的常量数值不能够直观的体现出其作为枚举实例的目的,且实际中无限的取值空间也不能很...

文章

登天蚂蚁

2018-09-13

705浏览量

Java 枚举用法详解

概念

enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。

在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下:

enum Color { RED, GREEN, BLUE }

如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 Color 枚...

文章

文艺小青年

2017-11-16

963浏览量

全能的枚举类 | 带你学《Java面向对象编程》之七十五

上一篇:迅速了解多例模式竞争者-枚举 | 带你学《Java面向对象编程》之七十四【本节目标】通过阅读本节内容,你将了解到enum关键字与Enum抽象类的区别,并能够掌握在枚举类中编写其他内容的方法,学会在日常开发中合理利用枚举类简化代码逻辑。

Enum类

严格意义上来讲,枚举并不属于一种新的结构,...

文章

温柔的养猫人

2019-12-30

188浏览量

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.4.4 序列化单例和类型安全的枚举

2.4.4 序列化单例和类型安全的枚举

在序列化和反序列化时,如果目标对象是唯一的,那么你必须加倍当心,这通常会在实现单例和类型安全的枚举时发生。如果你使用Java语言的enum结构,那么你就不必担心序列化,它能够正常工作。但是,假设你在维护遗留代码,其中包含下面这样的枚举类型:

这种风格在枚举被...

文章

华章计算机

2017-09-01

811浏览量

序列化和反序列化

枚举的序列化和反序列化

在序列化的时候Java仅仅是将枚举对象的name属性输出到结果中,反序列化的时候则是通过java.lang.Enum的valueOf方法来根据名字查找枚举对象。

同时,编译器是不允许任何对这种序列化机制的定制的,因此禁用了writeObject、readObject、rea...

文章

jephon

2016-08-13

772浏览量

JAVA枚举类型

枚举类型用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。

以一周为例,我们都知道一周七天且固定不变,那么我们可以使用枚举类型来表示其中的某一天。

/**

* 枚举类型

*

* @author jianggujin

*

*/

public enum...

文章

蒋固金

2016-01-19

1010浏览量

为什么java中用枚举实现单例模式会更好

代码简洁

这是迄今为止最大的优点,如果你曾经在Java5之前写过单例模式代码,那么你会知道即使是使用双检锁你有时候也会返回不止一个实例对象。虽然这种问题通过改善java内存模型和使用volatile变量可以解决,但是这种方法对于很多初学者来说写起来还是很棘手。相比用 synchronizati...

文章

javaedge

2018-02-22

968浏览量

Java5 枚举类型使用总结

一、概述

枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。Tiger 专家、developerWorks 的多产作者 Brett McLaughlin 将解释枚举的定义,介绍如何在应用程序中运用枚举,以及它为什么...

文章

技术小阿哥

2017-11-21

807浏览量

程序猿的日常——Java基础之抽象类与接口、枚举、泛型

再次回顾这些基础内容,发现自己理解的又多了一点。对于一些之前很模糊的概念,渐渐的清晰起来。

抽象类与接口

抽象类通常是描述一些对象的通用方法和属性,并且默认实现一些功能,它不能被实例化。接口仅仅是描述一种方法的规约,即只能通过某几个方法来操作对象,它把内部的实现隐藏到实现类中,自己仅仅关注使用而...

文章

青夜之衫

2017-12-05

692浏览量

[Java基础] Java enum的用法详解

用法一:常量

在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

public enum Color {

RED, GREEN, BLANK, YELLOW ...

文章

最美的回忆

2017-11-25

799浏览量

Java入门 - 语言基础 - 03.基础语法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。 enum Signal { GREEN, YELLOW, RED } public class TrafficLight { Signal color = Signal.RED; public void change() { switch (color) { case RED: color = Signal.GREEN; break ; case YELLOW: color = Signal.RED; break ; case GREEN: color = Signal.YELLOW; break ; } } } 用法三:向枚举中添加新方法 如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum实例。 public enum Color { RED("红色" , 1 ), GREEN( "绿色" , 2 ), BLANK( "白色" , 3 ), YELLO( "黄色" , 4 ); // 成员变量 private String name; private int index; // 构造方法 private Color(String name, int index) { this .name = name; this .index = index; } // 普通方法 public static String getName( int index) { for (Color c : Color.values()) { if (c.getIndex() == index) { return c.name; } } return null ; } // get set 方法 public String getName() { return name; } public void setName(String name) { this .name = name; } public int getIndex() { return index; } public void setIndex( int index) { this .index = index; } } 用法四:覆盖枚举的方法 下面给出一个toString()方法覆盖的例子。 public enum Color { RED("红色" , 1 ), GREEN( "绿色" , 2 ), BLANK( "白色" , 3 ), YELLO( "黄色" , 4 ); // 成员变量 private String name; private int index; // 构造方法 private Color(String name, int index) { this .name = name; this .index = index; } //覆盖方法 @Override public String toString() { return this .index+ "_" + this .name; } } 用法五:实现接口 所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。 public interface Behaviour { void print(); String getInfo(); } public enum Color implements Behaviour{ RED("红色" , 1 ), GREEN( "绿色" , 2 ), BLANK( "白色" , 3 ), YELLO( "黄色" , 4 ); // 成员变量 private String name; private int index; // 构造方法 private Color(String name, int index) { this .name = name; this .index = index; } //接口方法 @Override public String getInfo() { return this .name; } //接口方法 @Override public void print() { System.out.println(this .index+ ":" + this .name); } } 用法六:使用接口组织枚举 public interface Food { enum Coffee implements Food{ BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO } enum Dessert implements Food{ FRUIT, CAKE, GELATO } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值