IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java基础细碎知识点《枚举》 -> 正文阅读

[Java知识库]Java基础细碎知识点《枚举》

1.什么是枚举?

在数学和计算机科学中,枚举是一个被命名为整型常数的集合,枚举在生活中也很多比如:

星期的表示 : SUNDY、MONDY、TUESTDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY

性别 : FEMALE女、MALE男

简单来说,枚举就是一个集合。当一个类的对象是有限个且个数确定的时候,我们就可以定义一个枚举来存放这些对象。

2.ENUM类

java.lang.Enum类是SUM公司提供的java语言的公共基类,我们使用enum关键字来定义枚举类,我们定义的枚举类是隐式继承Enum类的

3.为什么使用枚举类

package Test01;
/*
   这个案例没有使用JAVA中的枚举,分析下面程序,在设计方面有什么缺陷?
   以下代码可以运行,没有问题。
   就是设计上有什么缺陷??
  */
public class EnumTest01 {
    public static void main(String[] args){
       boolean seccess = divide(10,2);
       System.out.println(seccess?"程序执行成功":"程序执行失败");
       boolean seccess2 = divide(10,0);
       System.out.println(seccess2?"程序执行成功":"程序执行失败");
    }
    /*
      需求:(设计者给出的):以下程序,计算两个int数据类型的商,计算成功返回1,计算失败返回0
      a 表示被除数
      b 表示除数
      返回 1 表示成功
      返回 0 表示失败
      */

    //既然最后的结果是boolean类型的数据,那我们就让这个静态方法返回boolean,因为true和false恰好表示了两种不同的状态
    public static boolean divide(int a,int b){
        try {
            int c = a / b;
            //程序执行到此处没有发生异常表示程序执行成功,但是返回一个int类型的数据,在设计的时候就不恰当。我们在下面改造一下
            return true;
        }catch (Exception e){
            return false;
        }
    }
    /*
    * 思考一下:以上的这个程序只有两种结果true和false。那么如果以后的开发中有三种,四种,五种情况不等。
    * 但是每一个情况都能数清楚,一枚一枚数清楚,这时候布尔类型就无法满足要求了,此时需要使用Java语言中
    * 的枚举类型。
    * */
}

4.使用枚举来改造程序

package Test01;
/*
   采用枚举的方式来改造程序
   总结:
   1、枚举也是一种引用数据类型
   2、枚举怎么定义?语法是什么?
     enum 枚举类型名{
       枚举值1、枚举值2
     }
   3、枚举值都是常量。用static final修饰过
   4、结果有两种建议使用布尔类型,如果是三种及其以上的话建议使用枚举
      例如 :颜色、性别、四季、星期等等  
 */
public class EnumTest02 {
      public static void main(String[] args){
          Result result=divide(10,2);
          System.out.println(result == Result.SUCCESS ?"程序运行成功":"程序运行失败" );
      }
      /*
      需求:(设计者给出的):以下程序,计算两个int数据类型的商,计算成功返回SUCCESS,计算失败返回FALSE
      a 表示被除数
      b 表示除数
      返回 SUCCESS 表示成功
      返回 FALSE 表示失败
      */
    public static Result divide(int a,int b){
        try {
            int c = a / b;
            return Result.SUCCESS;
        }catch (Exception e){
            return Result.FALSE;
        }
    }
}
enum Result{
    SUCCESS,FALSE;
}

5.枚举近似于(实际上就是)一个类,这个类里面的所有属性都是常量

/**
 * 颜色枚举类型
 */
public enum Color {
    /**
     * 颜色值
     */
    RED,BLUE,YELLOW,BLACK
}

/*
class MyClass {
    public static final String RED = "red";
    public static final String BLUE = "blue";
    public static final String YELLOW = "yellow";
    public static final String BLACK = "black";

    public static void main(String[] args) {
        String c = MyClass.RED;
        System.out.println(c);

        // RED
        System.out.println(Color.RED);
    }
}
*/

6.枚举在switch选择语句中的使用

 switch语句支持枚举类型
 switch也支持String、int
 低版本的JDK,只支持int
 高版本的JDK,支持int、String、枚举。
 byte short char也可以,因为存在自动类型转换。
public class SwitchTest {
    public static void main(String[] args) {
        switch (Season.SPRING) {
            case SPRING:
                System.out.println("春天");
                break;
            case SUMMER:
                System.out.println("夏天");
                break;
            case AUTUMN:
                System.out.println("秋天");
                break;
            case WINTER:
                System.out.println("冬天");
                break;
        }

    }
}

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-25 07:59:26  更:2021-11-25 08:00:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:57:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码