Java开发知识之Java的枚举

时间:2022-09-18 10:04:06

        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 修饰了.所以枚举名称(变量)

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

常用方法;

  Java开发知识之Java的枚举

代码举例以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]);
} }

Java开发知识之Java的枚举

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

五丶知识总结

    1.定义枚举关键字

      enum 名称{成员,成员};

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

    2.枚举方法.

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

    3.枚举高级用法

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

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

  

  

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

  1. Java开发知识之Java编程基础

    Java开发知识之Java编程基础 一丶Java的基础语法 每个语言都有自己的语法规范.例如C++ 入口点是main. 我们按照特定格式编写即可. Java也不例外. Java程序的语法规范就是 Ja ...

  2. Java开发知识之Java中的Map结构

    Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...

  3. Java开发知识之Java中的集合Set接口以及子类应用

    ---恢复内容开始--- Java开发知识之Java中的集合Set接口以及子类应用 一丶Set接口以及作用 在上一讲.我们熟悉了接口的实现图.以及自己各有的子类. List接口主要存储的数据是可以重复 ...

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

    Java开发知识之Java中的集合类 一丶什么是集合类 如果你学习说数据结构,那么学习集合就很简单. 因为集合就是存储数据的结构. 例如 有链表结构 (list ) 还有 map结构.等等. 集合类就 ...

  5. Java开发知识之Java中的泛型

    Java开发知识之Java中的泛型 一丶简介什么是泛型. 泛型就是指泛指任何数据类型. 就是把数据类型用泛型替代了. 这样是可以的. 二丶Java中的泛型 Java中,所有类的父类都是Object类. ...

  6. Java开发知识之Java的异常处理

    Java开发知识之Java的异常处理 一丶异常概述 在讲解异常之前,我们要搞清楚.什么是异常. 通俗理解就是我们编写的程序出问题了.进行处理的一种手段. 比如我们的QQ.有的时候就崩溃了.比如出现xx ...

  7. Java开发知识之Java类的高级特性&comma;内部类&period;以及包使用&period;跟常量关键字

    Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字 一丶Java中包的机制 首先包其实就是个文件夹.作用就是管理类. Java中每次定义一个类的时候.通过Java编译之后.都会生 ...

  8. Java开发知识之Java的继承多态跟接口&ast;

    Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...

  9. Java开发知识之Java的数字处理类Math类

    Java开发知识之Java的数字处理类Math类 一丶Java.text.DecimalFormat类与NumberFormat类 首先 Java.text.DecimalFormat指的是Decim ...

随机推荐

  1. Node判断文件是否链接

    通过fs.stat(), fs.lstate() and fs.fstate()都可以得到fs.Stats对象, 其中stats.isSymbolicLink()方法用来判断是否链接, 然而一直都不成 ...

  2. 用PHP抓取淘宝商品的用户晒单评论&plus;图片实例

    为什么想起来做这个功能?是因为前段时间在做一个淘客网站的时候,想到是否能抓取到淘宝商品的买家秀呢?经过一番折腾发现,淘宝商品用户评价信息是通过Ajax来调取的,通过嗅探网址发现,评论数据的请求接口是: ...

  3. C&num;基础学习心得(二)

    索引器 class Program { static void Main(string[] args) { Employee e1 = new Employee(); e1[0] = "三& ...

  4. object 类 toString() 和 equals() 的覆写

    基本作用: objiect类是所有类的父类. 任何一个类定义的时候如果没有明确定义了父类的话,默认父类是Object类. class A extends Object{} 在整个java里面,类的继承 ...

  5. git的使用&lpar;进阶篇&rpar;

    如何处理代码冲突 冲突合并一般是因为自己的本地做的提交和服务器上的提交有差异,并且这些差异中的文件改动,Git不能自动合并,那么就需要用户手动进行合并 如我这边执行git pull origin ma ...

  6. JavaScript 最终将在编程语言中占统治地位?

    JavaScript 最终将在编程语言中占统治地位? JavaScript 现在是大多数开发者都会使用的编程语言.网络效应会推动它成为有史以来第一个真正占统治地位的编程语言吗? 大约十年前,编程的方式 ...

  7. &lbrack;C&rsqb;&ast;和&amp&semi;

    一 .& c的&被称为“寻址运算符”,作用是指向某变量的指针: 请看以下代码: int main(void){ int int_1 = 16;        printf(" ...

  8. Mybatis中自定义映射xml参数传递使用

    在使用mybatis框架时,大多时候自动生成的mapper.xml文件能满足我们所需的数据库操作,但一些情况下还是需要我们自己写sql:为了加深印象,总结了下参数传递的方式以及各个关键字的含义如下: ...

  9. noip第21课作业

    1. 遍历二叉树 [问题描述] 以先序的方式建立一棵二叉树,空结点用‘#’号表示,例如:abd###ce##f##,将建立一棵如下的二叉树: 输出其中序序列和后序序列,其中总结点个数不超过100. 输 ...

  10. Bash - 趣味Shell

    好消息:本人博客已开通.很多其它博客请进 http://swplzj.github.io 今天抽闲玩了一下Shell.发现几个比較有意思的.记录一下. 终端彩虹字:lolcat 图形化文字:figle ...