enum

<JAVA>枚举类型(enum)

半腔热情 提交于 2019-12-20 02:54:11
枚举理解: 枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是 这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。 关键字:enum。 public enum Color { RED, GREEN, BLANK, YELLOW } 向枚举中添加新方法 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; }

Java enum(枚举)使用详解之三

狂风中的少年 提交于 2019-12-19 09:37:23
DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。 用法一:常量 在 JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。 Java代码 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 要求必须先定义

枚举,网络编程

淺唱寂寞╮ 提交于 2019-12-19 04:15:05
文章目录 枚举 网络编程 InetAddress 描述ip地址的类 UDP编程 TCP编程 枚举 枚举: 列举出 有穷序列集 枚举类其实用了多例模式,枚举类的实例是有范围限制的。 enum类,反编译后就是一个 class 继承了Enum(注意:我们不能显示继承这个Enum), 如果枚举类里定义了抽象方法,他就是abstract类,如果没有抽象方法,他就由final修饰。final修饰的类不能被继承 enum Gender { MALE , FEMALE ; } 反编译后大概是这样, 必须看 public final class Gender extends java . lang . Enum { public static final Gender Male ; public static final Gender Female ; //为了确保只有固定个数对象且不能被修改,所以用static final修饰 private static final Gender [ ] $VALUES ; //这个是一个放所有枚举对象的数组,用values可以获取到。在编译阶段由编译器添加的,包括values()方法 static { //静态代码块,加载类的时候,就挨个创建每个枚举对象,并放进数组里。 Male = new Gender ( "Male" , 0 ) ; Female =

Java基础-枚举

孤人 提交于 2019-12-18 22:09:09
多例设计模式: 特点: 构造方法私有化,类内部提供多个实例化对象,后面通过static方法返回 class Color { private static final Color RED = new Color("RED"); private static final Color GREEN = new Color("GREEN"); private static final Color BLUE = new Color("BLUE"); private String title; private Color(String title) { this.title = title; } private static Color getInstance(int ch) { switch (ch) { case 0 : return RED; case 1 : return GREEN; case 2 : return BLUE; default: return null; } } public String toString() { return this.title; } public class TestDemo { public static void main(String[] args) { System.out.println(Color.getInstance(0)); }

【06】Effective Java

给你一囗甜甜゛ 提交于 2019-12-17 14:22:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1、用enum代替int常量 (1)int枚举模式 public static final int APPLE_FUJI = 0; 比较脆弱,如果与枚举常量关联的int发生了变化,客户端需重新编译。另外没有便利的方法将常量名称打印出来。 (2)枚举版本 public enum Apple { FUJI,PIPPIN,GRANNY_SMITH } 实例 public enum Planet { MERCURY(3.302e+23, 2.439e6), VENUS (4.869e+24, 6.052e6), EARTH (5.975e+24, 6.378e6), MARS (6.419e+23, 3.393e6), JUPITER(1.899e+27, 7.149e7), SATURN (5.685e+26, 6.027e7), URANUS (8.683e+25, 2.556e7), NEPTUNE(1.024e+26, 2.477e7); private final double mass; // In kilograms private final double radius; // In meters private final double surfaceGravity; // In m / s^2 //

枚举型变量

喜夏-厌秋 提交于 2019-12-17 12:15:49
enum:    enum关键字,类型名,枚举常量表。    enum Day{mon,tue,wend,thur,fri,satur,sun}; 使用方法:   enum Day day=mon;   枚举常量表当中的第一个元素的默认值为0,如果当前的元素没有被赋值,则其值为前面一个 常量的值加1。并且枚举常量只能够以标识符的方式表示出来,不能表示为字符串类型或者是整型 的类型。 来源: https://www.cnblogs.com/wangkaia/p/12004959.html

深入理解 Java 枚举

一个人想着一个人 提交于 2019-12-16 16:13:12
📓 本文已归档到:「 javacore 」 🔁 本文中的示例代码已归档到:「 javacore 」 1. 简介 enum 的全称为 enumeration, 是 JDK5 中引入的特性。 在 Java 中,被 enum 关键字修饰的类型就是枚举类型。形式如下: enum ColorEn { RED, GREEN, BLUE } 枚举的好处 :可以将常量组织起来,统一进行管理。 枚举的典型应用场景 :错误码、状态机等。 2. 枚举的本质 java.lang.Enum 类声明 public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable { ... } 新建一个 ColorEn.java 文件,内容如下: package io.github.dunwu.javacore.enumeration; public enum ColorEn { RED,YELLOW,BLUE } 执行 javac ColorEn.java 命令,生成 ColorEn.class 文件。 然后执行 javap ColorEn.class 命令,输出如下内容: Compiled from "ColorEn.java" public final class io.github.dunwu.javacore

Java面向对象--枚举

假装没事ソ 提交于 2019-12-16 11:00:59
枚举简介 实际开发的过程之中,我们经常会遇到一些数据的取值就在几个确定的值之间。例如,性别只有男或者女,一周只有七天。自从Java 5之后就开始增加了对枚举类型的支持。 枚举也是一种类,一种特殊的类,所以枚举也称为枚举类,是一种引用类型。它的声明和使用与类的接口相似,但是枚举类型的声明必须要使用关键字 enum 。 枚举类型的定义 枚举定义的语法格式: [ 修饰符 ] enum 枚举类型名 { 枚举成员 方法 } 枚举的修饰符可以是: public , private , internal 。 枚举类型名:一是作为枚举名使用。二是表示枚举成员的数据类型。因此,枚举成员也称为枚举实例或者枚举对象。 枚举成员是可以一一列出来的枚举常量,所以枚举成员也被称为枚举常量或者枚举值。 枚举类与其他类的区别: 枚举可以实现一个或者多个接口,使用 enum 关键字声明的枚举继承的是 java.lang.Enum 类,而不是继承 java.lang.Object 类,因此枚举不能够显示继承其他的父类。 使用 enum 定义非抽象的枚举类型的时候默认使用 final 修饰,因此枚举类不能派生子类。 创建枚举类型的对象的时候不能够使用 new 运算符,而是直接将枚举成员赋值给枚举对象。 因为枚举是类,所以说他可以拥有属于自己的构造方法和其他方法,但是构造方法只能够使用 private 访问修饰符

gRPC快速入门(一)——Protobuf简介

走远了吗. 提交于 2019-12-15 09:37:31
gRPC快速入门(一)——Protobuf简介 一、Protobuf简介 1、Protobuf简介 Protobuf即Protocol Buffers,是Google公司开发的一种跨语言和平台的序列化数据结构的方式,是一个灵活的、高效的用于序列化数据的协议。 与XML和JSON格式相比,protobuf更小、更快、更便捷。protobuf是跨语言的,并且自带一个编译器(protoc),只需要用protoc进行编译,就可以编译成Java、Python、C++、C#、Go等多种语言代码,然后可以直接使用,不需要再写其它代码,自带有解析的代码。 只需要将要被序列化的结构化数据定义一次(在.proto文件定义),便可以使用特别生成的源代码(使用protobuf提供的生成工具)轻松的使用不同的数据流完成对结构数据的读写操作。甚至可以更新.proto文件中对数据结构的定义而不会破坏依赖旧格式编译出来的程序。 GitHub地址: https://github.com/protocolbuffers/protobuf 不同语言源码版本下载地址: https://github.com/protocolbuffers/protobuf/releases/latest 2、Protobuf的优缺点 Protobuf的优点如下: A、性能号,效率高 序列化后字节占用空间比XML少3-10倍

C++11:强枚举类型enum

这一生的挚爱 提交于 2019-12-14 03:17:25
转自 https://blog.csdn.net/caychen/article/details/79681806 。感谢博主辛苦整理,侵删。 #include <iostream> namespace T //命名空间T { enum Color{ Black, Gray, Green }; } namespace S { enum Size{ Small = 1, Middle, Large }; } namespace //匿名命名空间(全局) { enum Color{Black,Blue,Gray}; } //枚举类:强类型枚举 int main() { //弱enum的缺点: //1、enum成员在函数内全局可见,所以下面第二行就会报错,提示重复定义 enum Type1{ Purple, Red, White }; enum Color{Purple,Gray,Green}; //Purple redefinition //具名namespace,class/struct及union必须未通过"名字::成员名"的方式访问,称为强作用域类型 //而enum则为非强作用域类型 //对于未使用名字,而直接使用enum的成员名的,默认进入全局命名空间 T::Color c = T::Green; if (c == Black) //Black是匿名命名空间的Black