CC00083.bigdatajava——|Java特殊类.V11|——|Java.v11|自定义类枚举类|在switch结构使用|
### --- 枚举的定义~~~ ——> 使用public static final表示的常量描述较为繁琐,
~~~ ——> 使用enum关键字来定义枚举类型取代常量,
~~~ ——> 枚举类型是从Java5开始增加的一种引用数据类型。
~~~ ——> 枚举值就是当前类的类型,也就是指向本类的对象,
~~~ ——> 默认使用public static final关键字共同修饰,
~~~ ——> 因此采用枚举类型.的方式调用。
~~~ ——> 枚举类可以自定义构造方法,
~~~ ——> 但是构造方法的修饰符必须是private,默认也是私有的。
package com.yanqi.task10;/*** 编程实现所有方向的枚举,所有的方向:向上、向下、向左、向右 枚举类型要求所有枚举值必须放在枚举类型的最前面*/
public enum DirectionEnum implements DirectionInterface {// 2.声明本类类型的引用指向本类类型的对象// 匿名内部类的语法格式:接口/父类类型 引用变量名 = new 接口/父类类型() { 方法的重写 };// public static final Direction UP = new Direction("向上") { 方法的重写 };UP("向上") {@Overridepublic void show() {System.out.println("贪吃蛇向上移动了一下!");}}, DOWN("向下") {@Overridepublic void show() {System.out.println("贪吃蛇向下移动了一下!");}}, LEFT("向左") {@Overridepublic void show() {System.out.println("左移了一下!");}}, RIGHT("向右") {@Overridepublic void show() {System.out.println("右移了一下!");}};private final String desc; // 用于描述方向字符串的成员变量// 通过构造方法实现成员变量的初始化,更加灵活// 1.私有化构造方法,此时该构造方法只能在本类的内部使用private DirectionEnum(String desc) { this.desc = desc; }// 通过公有的get方法可以在本类的外部访问该类成员变量的数值public String getDesc() {return desc;}// 整个枚举类型只重写一次,所有对象调用同一个/*@Overridepublic void show() {System.out.println("现在可以实现接口中抽象方法的重写了!");}*/
}
package com.yanqi.task10;public class DirectionUseTest {// 自定义静态方法实现根据参数指定的字符串内容来打印具体的方向信息public static void test1(String str) {switch (str) {case "向上":System.out.println("抬头望明月!"); break;case "向下":System.out.println("低头思故乡!"); break;case "向左":System.out.println("左牵黄"); break;case "向右":System.out.println("右擎苍"); break;default:System.out.println("没有这样的方向哦!");}}// 自定义静态方法实现根据参数指定的枚举类型来打印具体的方向信息public static void test2(DirectionEnum de) {switch (de) {case UP:System.out.println("抬头望明月!"); break;case DOWN:System.out.println("低头思故乡!"); break;case LEFT:System.out.println("左牵黄"); break;case RIGHT:System.out.println("右擎苍"); break;default:System.out.println("没有这样的方法哦!");}}public static void main(String[] args) {DirectionUseTest.test1(Direction.UP.getDesc());DirectionUseTest.test1("今天是个好日子!");System.out.println("--------------------------------------------");DirectionUseTest.test2(DirectionEnum.DOWN);//DirectionUseTest.test2("今天是个好日子!"); Error:类型不匹配,减少了出错的可能性}
}
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=54699:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task10.DirectionUseTest
抬头望明月!
没有这样的方向哦!
--------------------------------------------
低头思故乡!Process finished with exit code 0
CC00083.bigdatajava——|Java特殊类.V11|——|Java.v11|自定义类枚举类|在switch结构使用|相关推荐
- Java基础之面向对象的概念 继承---组合----枚举类
Java基础之面向对象的概念 继承---组合----枚举类 本章作为面向对象概念的最后一篇,但是作为一名java程序员在面向对象的这条路上还很长. 一.继承与组合简介 继承是实现类重用的重要手段,但是 ...
- 【JAVA SE】第三章 运算符、条件语句、switch结构、while循环、do…while循环、for循环、break关键字以及break和continue关键字
第三章 运算符.条件语句.switch结构.for循环.break关键字以及break和continue关键字 文章目录 第三章 运算符.条件语句.switch结构.for循环.break关键字以及b ...
- java什么是类枚举类_java枚举类型是什么?
下面就是一个典型枚举类型的定义: Java代码 Java代码 public enum Color{ RED,BLUE,BLACK,YELLOW,GREEN } 显然,enum很像特殊的class,实际 ...
- Java学习之路(十):枚举类和注解
一.枚举类的使用 当类的对象只有有限个,确定的(此类称为枚举类),如 星期:周一,- , 周日 性别:男(man),女(woman) 支付方式:Cash(现金),WeChatPay(微信支付),Ali ...
- Java 下载文件扩展名以及Mime-ContentType参照枚举类(详细)
背景 对接Minio等OSS文件存储的时候,我们市场会发现需要填写文件格式,不然默认就是application/octet-stream 这种二进制文件流,需要我们自己手动改文件拓展名才能打开 JSO ...
- CC00091.bigdatajava——|Java特殊类.V19|——|Java.v19|常见预制注解|
一.常见的预制注解 ### --- 常见的预制注解~~~ --> 预制注解就是Java语言自身提供的注解,具体如下: @author 标明开发该类模块的作者,多个作者之间使用,分割 @versi ...
- java:枚举类使用
文章目录 Java枚举详解 基本介绍 如何定义枚举类 1.自定义实现枚举类 2.使用enum关键字创建枚举类 Enum类的常用方法 枚举类实现接口 Java枚举详解 基本介绍 枚举对应英文(enume ...
- 比起睡觉,我更喜欢刷巨详细的Java枚举类,这是来自猿人的自觉呀
零基础学习之Java枚举类 概述 JDK1.5之前 创建枚举类 代码示例 JDK1.5之后 创建枚举类 代码示例 枚举类继承父类 基本介绍 代码示例 枚举类实现接口 基本介绍 代码示例 枚举类实现单例 ...
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
类的继承 Java只支持单继承,不允许多重继承 - 一个子类只能有一个父类 - 一个父类可以派生出多个子类 这里写图片描述 子类继承了父类,就继承了父类的方法和属性. 在子类中,可以使用父类中定义的方 ...
- java add offer_图解Java中的5大队列!(干货收藏)
Java 中的队列有很多,例如:ArrayBlockingQueue.LinkedBlockingQueue.PriorityQueue.DelayQueue.SynchronousQueue等,那它 ...
最新文章
- java虚拟机参数-X 与 -XX的区别
- vb.net中report不显示中文_Ubuntu中vi文本编辑器的使用
- python爬虫流程-Python爬虫程序架构和运行流程原理解析
- 搜索不包含关键词_新手教程!百度关键词规划师功能详解
- 122. Leetcode 647. 回文子串 (动态规划-子序列问题)
- 微盟涉嫌二清,大商户模式将受理严监管
- 成功解决利用pandas的read_csv函数读取csv文件的时候出现中文乱码问题
- 2020-11-22(工作集与常驻集)
- laravel项目运行 php artisan cache:clear 命令报错
- ShellExecute 函数的用法和实例
- java程序可分为两个基本文件_1 Java语言概述答案
- linux webservice端口号,解决在Linux环境下访问webservice发送中文乱码问题的方案
- Oracle和Mysql的不同
- 蓝桥杯 BASIC-2 基础练习 01字串
- 安卓手机管理器_神器推荐,安卓手机拯救者来了!!!
- XFire+spring 发布webservice 及其客户端调用程序
- Spring中的bean是否是线程安全的
- 突然发现浏览器广告拦截插件原理
- [转]SReng分析方法
- 成绩出来了!700 分也上不了清华,究竟该如何从内卷中走出来!肺腑之言,建议转发给亲戚朋友们!