Java开发知识之Java的枚举

        Java开发知识之Java的枚举

一丶什么是枚举

  枚举可以理解为就是常量,在Java中我们定义常量.都是用 final语句. C++中都是用const关键字.

枚举跟C++概念都是一样的.就是特定的常量而已.

二丶Java中的枚举

    java中的常量.一般都是final定义.但是我们讲过.final定义的常量.初始化的时候可以每次给不同的值.

所以加上static 才能保证其内存不会改变.一般常量都是定义在接口中给我们使用的.

可能需要连续定义.

例如:

  public final static int a = 1;

  public final static int b = 2;

  public final static int c = 3;

....

  枚举就是管理一组常量的一个结构而已.

据图语法如下:

    

权限修饰符 enum关键字 枚举名称{
     枚举常量,
     枚举常量,
     枚举常量
}

枚举常量的定义

  枚举名称  常量;

具体使用如下代码:

类代码:

  

public class MyTestenum {

    public MyTestenum() {
        // TODO 自动生成的构造函数存根
    }
    public enum NUMBER{
        N_NUMBER1,
        N_NUMBER2,
        N_NUMBER3
    }

}

外部new对象.并且使用enum定义常量.

public static void main(String[] args) throws MyException {
        MyTestenum t = new MyTestenum();
        NUMBER n = NUMBER.N_NUMBER1; //定义枚举常量n,必须初始化,可以为null也可以是枚举中的常量.
        switch(n) {
        case N_NUMBER1:
            System.out.println("1");
            break;
        case N_NUMBER2:
            System.out.println("2");
            break;

        case N_NUMBER3:
            System.out.println("3");
            break;
        }
    }

可以看到.我们可以直接使用 枚举 定义枚举变量. 并且赋值其中一个枚举常量.

但是我们又有疑问了. 我们的枚举常量并没有初始化.但是为什么程序不出错.而且还打印了1;

原因是. 枚举常量.默认就是从0开始.

三丶枚举作为方法传递

  我们可以定义枚举常量.规定只接受什么类型的枚举.

public class MyTestenum {

    public MyTestenum() {
        // TODO 自动生成的构造函数存根
    }
     enum NUMBER{
        N_NUMBER1 ,
        N_NUMBER2 ,
        N_NUMBER3
    }

    public static void doit(NUMBER c) {
        switch(c) {
        case N_NUMBER1:
            break;
        case N_NUMBER2:
            break;
        case N_NUMBER3:
            break;
        }
    }

}

使用:

  

public static void main(String[] args) throws MyException {
        MyTestenum.doit(NUMBER.N_NUMBER1);

    }

我们要传入枚举常量才可以.

四丶枚举的高级用法

    我们知道.JAVA是一个面向对象的程序. 我们定义的枚举.其实已经默认继承了一个类

枚举类型可以看做一个类,其中的成员也都被默认使用 final public static 修饰了.所以枚举名称(变量)

其实就是一个引用.他继承了父类.则有父类的方法可以使用.

常用方法;

  

代码举例以values()为例.遍历枚举成员

    public static void main(String[] args) throws MyException {
        MyTestenum.doit(NUMBER.N_NUMBER1);
        NUMBER n = null;
        for(int i = 0; i < n.values().length;i++) {
            System.out.print(" " + n.values()[i]);
        }

    }

使用方法返回了一个数组. 又使用链式方法.调用了 length求数组成员. 下面则进行遍历.

五丶知识总结

    1.定义枚举关键字

      enum 名称{成员,成员};

      1.枚举定义的成员. 默认都是 public static  final 修饰的. 其成员是一个常量.且内存不可以更改.

    2.枚举方法.

      枚举可以当参数传递给方法使用.

    3.枚举高级用法

      枚举可以看成一个类.他的成员都是它的实例. 它集成子java.lang.Enum类. 我们可以使用方法进行遍历.

例如values():返回枚举数组. 可以进行遍历枚举.并且输出结果.

  

  

原文地址:https://www.cnblogs.com/iBinary/p/9813925.html

时间: 2024-11-07 07:16:16

Java开发知识之Java的枚举的相关文章

Java开发知识之Java的集成开发环境

Java开发知识之Java的集成开发环境 一丶Eclipse 开发环境 Eclipse是IBM公司花了4000万美金开发的一个集成开发环境.是一个免费开源的. 下载官网: http://www.eclipse.org 下载地址:http://www.eclipse.org/downloads/packages/ 打开下载地址,下载适用于Java开发人员的IDE 有可能你的界面是英文版本的.因为我使用的是Google 浏览器.自动给我翻译了一下网页. 注意图标: JC.下载适用于我们系统的版本即可

Java开发知识之Java控制语句

Java开发知识之Java控制语句 一丶复合语句 不管任何语言都有控制语句 if else if else whie do  while  for .... 首先讲解的是java的复合语句 1.什么是复合语句 复合语句简称为块语句,C 语言以及其它语言都有的块语句 { int nValue = 10; } 块语句有一个作用就是限制作用域.  比如我们的变量nValue 在块语句当中.如果出了块语句那么就不能使用了. 二丶条件语句 条件语句   if else if  else 跟其它语言一样.

Java开发知识之Java中的泛型

Java开发知识之Java中的泛型 一丶简介什么是泛型. 泛型就是指泛指任何数据类型. 就是把数据类型用泛型替代了. 这样是可以的. 二丶Java中的泛型 Java中,所有类的父类都是Object类.所以定义泛型的时候,设计长须的话传入的值与返回的值都是Object类型为主.如果是用具体的实例,就要进行转换了.具体参考向上转型,跟向下转型. JDK 1.5版本才有了泛型机制. 语法如下: class 类名<T >{ public T a; public T b; public void Set

Java开发知识之Java中的集合上List接口以及子类讲解.

Java开发知识之Java中的集合类 一丶什么是集合类 如果你学习说数据结构,那么学习集合就很简单. 因为集合就是存储数据的结构. 例如 有链表结构 (list ) 还有 map结构.等等. 集合类就是存储数据的集合. 我们可以看一下继承图: Collection接口. 由 Set类.以及 List类就行实现. 并且还有子类. Map 有 HashMap类. 还有 TreeMap类继承. 各个类都是不一样的.比如 List.代表链表类.可以存储数据,是连续的.只要有前驱后继即可. 子类就是对链表

Java开发知识之JAVA的反射

目录 Java中的反射机制 一丶什么是反射机制 二丶Class类,自描述类.获取类名的三种方法 1.使用静态属性Class获取 2.使用Class方法 forName()获取自描述Class 3.使用Object自带的getClass返回自描述Class 三丶了解一下自描述类Class方法. 1.Class针对包,类,父类.接口的方法 2.Class对构造方法提供的方法 3.Class对方法提供的方法. 4.Class对成员变量提供的方法 5.对内部类提供的方法 四丶反射访问构造方法 Java中

JAVA开发知识之Java的线程

目录 Java多线程讲解 一丶多线程简介 1.进程的概念 2.线程概念 3.Java中多线程Thread类 二丶多线程的创建 1.继承Thread类.重写run方法. 2.实现Runalbe接口. 三丶线程的启动和终止 四丶线程的状态 五丶线程控制的基本方法 1.线程名称 2.线程优先级 3.Sleep()方法 4.join()方法 5.isAlive()方法 六丶线程的同步 七丶死锁 八丶线程的通信 九丶线程高级API(Timer 丶 TimerTask) Java多线程讲解 一丶多线程简介

java开发知识IO知识之输入输出流以及文件

java开发知识IO知识之输入输出流以及文件 一丶流概述 流十一组有序的数据序列.根据操作的类型,可以分为输入流跟输出流两种. IO(input/output)输入/输出流提供了一条通道程序.可以使用这条通道把源的字节序列送到目的地 简单来说. 就是操作二进制. 二进制提供了读写功能. 写就是输出. 读就是输入. 输入输出流图示: 输入流讲解 InputStream类. 1. 输入流以及类层次结构 输入流就是从"文件" 读取到内存. 这个文件是抽象的.意思就是不管什么内容从硬盘也好.任

java基础知识《JAVA 核心技术》学习笔记(一)

一:数据类型 (1)java整形: 类型                         存储要求 int                              4字节 short                          2字节 long                           8字节 byte                           1字节 (2)浮点类型 类型                         储存要求 float            

Java基础知识:Java知识简介

一.java基础语法: 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等: 类:类是一个模板,它描述一类对象的行为和状态. 方法:方法就是行为,一个类可以有很多方法.逻辑运算.数据修改以及所有动作都是在方法中完成的. 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定. 编写J