黑马程序员_19枚举

黑马程序员入学Java知识——精华总结 黑马程序员入学Java知识——精华总结   J2SE部分,Java高新技术部分,7K面试题部分等黑马入学要求的知识点总结!   一、黑马程序员—java概述与基础知识 6 1、何为编程? 6 2、Java语言概述,历史、特点 6 3、什么是跨平台性?原理是什么?JVM 7 4、Jre和Jdk的区别? 7 5、java虚拟机JVM 8 6、 Java程序运行机制 8 7 阅读详情
-------  android培训 、 ios培训 、期待与您交流! ----------
一、为什么要有枚举
        问题:要定义星期几或性别的变量,该怎么定义?
                假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday = 0;
                或即使使用常量方式也无法阻止意外。
        枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。
        枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。
        用普通类如何实现枚举功能,定义一个Weekday的类来模拟枚举功能。
        私有的构造方法
        每个元素分别用一个公有的静态成员变量表示
        可以有若干公有方法或抽象方法。采用抽象方法定义nextDay就将大量的if.else语句转移成了一个个独立的类。

二、枚举的基本应用
举例:定义一个Weekday的枚举。
扩展:枚举类的values,valueOf,name,toString,ordinal等方法
总结:枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象,例如可以调用WeekDay.SUN.getClass().getName和WeekDay.class.getName()得到的是同一个类的名字。

三、枚举实战
        public class EnumTest {
        public static void main(String[] args) { 
  WeekDay wk1 = WeekDay.SUN;
    /**@addition 相关知识推介
  Java的每个类都带有一个运行时类对象,该Class对象中保存了创建对象所需的所有信息。
  可以用.class返回此 Object 的运行时类Class对象,也可以用getClass()获得。
  获得此对象后可以利用此Class对象的一些反射特性进行操作,
  例如:
   this.getClass().newInstance(); //用缺省构造函数创建一个该类的对象
   this.getClass().getInterfaces(); //获得此类实现的接口信息
   this.getClass().getMethods();//获得此类实现的所有公有方法
   this.getClass().getName();//获得此类的名称
  */
  //输出wk1的类名,事实证明每个Enum的属性都是一个Enum类
  System.out.println(wk1.getClass().getName());//com.niechi.enhance.day01.EnumTest$WeekDay
 
 //检验运行时的类对象与创建这个对象的类是否是同一个类型,由于使用的WeekDay.class.getClass()获取该类的类,可以说是父类
  System.out.println(wk1.getClass().getName() == WeekDay.class.getClass()
    .getName());//输出结果为false,
 
  /*
  Class与class都继承自Object,class实体来代表java运行时的class和interface等等,
  Class.class就是得到或者生成这个Class类的Class Object;
  而.getClass()本就是返回一个类对应的Class Object ,
  所以Class.class.getClass()最后还是返回Class Object*/
 
  //Class.class.getClass();
  System.out.println(Class.class.getClass().getName());//java.lang.Class
 
  //对WeekDay.class 进行getClass()操作与对Class.class进行getClass()操作的结果是相同
  System.out.println(WeekDay.class.getClass().getName());//java.lang.Class
 
  //比较对内存实体class进行getClass之后是否相等
  System.out.println(Class.class.getClass()==WeekDay.class.getClass());//true
 
   //比较WeekDay.FRI与WeekDay.class 是否是相同的对象
  System.out.println(WeekDay.FRI.getClass().getName()==WeekDay.class.getName());//true
 
  //Enum.class.getClass()同样也是Class
  System.out.println(Enum.class.getClass().getName());//java.lang.Class
  String enumName = Enum.class.getName();
  System.out.println(enumName);//java.lang.Enum
}
 //注意在定义的时候,enum开头字母为小写,如果是大写会报错,而且很难找到错误原因
 //但是在导入包的是确是大写的Enum,这一点也需要格外注意, 这里其实也根本不需要导入包
 //如果不小心将定义枚举的关键词,大写之后,会报这个错误:Syntax error, insert ";" to complete FieldDeclaration,大概的意思是:通过在语句后面添加分号,来完成完成字段声明
public enum WeekDay{
  MON,TUE,WEN,THU,FRI,STA,SUN;
 } 
}

四、注意事项
        所有自行编写的 枚举类 都默认自动继承 java.lang.Enum<E extends Enum<E>> 。    
         其中 java.lang.Enum 类的 toString() 方法说明:返回枚举常量的名称,它包含在声明中。
        这意味着你自行编写的 枚举类 都默认继承这个 toString 方法的逻辑。

五、枚举的高级运用
枚举就相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法。
枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后要有分号与其他成员分隔。
把枚举中的成员方法或变量等放在枚举元素的前面,编译器报告错误。
带构造方法的枚举
构造方法必须定义成私有的
如果有多个构造方法,该如何选择哪个构造方法?
枚举元素MON和MON()的效果一样,都是调用默认的构造方法。
带方法的枚举
定义枚举TrafficLamp
实现普通的next方法
实现抽象的next方法:每个元素分别是由枚举类的子类来生成的实例对象,这些子类采用类似内部类的方式进行定义。
增加上表示时间的构造方法
枚举只有一个成员时,就可以作为一种单例的实现方式。 
Qwen3-Embedding选型指南:0.6B/4B/8B三版本性能对比与场景匹配建议 本文深入解析阿里开源的Qwen3-Embedding系列模型(0.6B/4B/8B)的性能差异与适用场景,提供从边缘计算到云端部署的实战选型建议。通过实测数据对比响应延迟、内存占用和多语言精度等核心指标,帮助技术团队根据业务需求选择最优模型版本,并分享边缘设备优化与云端成本测算策略。 阅读详情

相关推荐

如何用Arduino和HX711压力传感器制作一个简易电子秤(含OLED显示)

本文详细介绍了如何使用Arduino、HX711压力传感器和OLED显示屏制作一个简易电子秤。从硬件连接到软件编程,提供了分步教程,包括核心元件功能解析、接线方法、库安装、模块测试以及关键的校准流程。项目实践性强,适合创客和DIY爱好者学习嵌入式系统与传感器应用。

tea88的博客 536

记录:鸿蒙实战案例(源于黑马程序员视频)

观看黑马程序员视频完成底部Panel部分代码编写。

2302_77110702的博客 1619

华硕ROG枪神双系统实战:Ubuntu安装避坑指南

本文是华硕ROG枪神笔记本安装Ubuntu双系统的详细避坑指南。针对其独特的硬件与BIOS设计,文章核心解决了VMD控制器导致硬盘无法识别、驱动兼容性等关键难题,并提供了从BIOS设置、分区方案到安装后驱动配置与性能调优的一站式解决方案,帮助用户实现稳定的双系统体验。

raspberrypi5的博客 545

黑马程序员——iOS核心基础(13-14天)-黑马程序员-专题视频课程

C语言基础13-14天。其中包括预处理与结构体。

heima_cxy的博客 247

推荐系统公平性之流行度偏差(fairness in recommender systems -- popularity bias)

主要参考论文:《The Unfairness of Popularity Bias in Recommendation》 RMSE@RecSys 2019 流行度偏差是什么 先定义流行物品和非流行物品。下图是(Movielens 1M)数据集中物品的评分情况。 图的横坐标表示不同物品,纵坐标表示物品的评分次数。可以看出只有少部分物品得到了很多的评分,大部分曲线尾部的物品都只有少量的评分,我们也把这部分物品称为长尾物品。在本文中,我们取曲线的前20%对应的物品为流行物品,剩余的为非流行物品(长尾物品)。 然

beilizhang的博客 5271

Windows安全中心空白问题修复:服务重置与系统组件修复实战指南

Windows系统服务是操作系统后台运行的核心组件,负责管理硬件资源、应用程序执行和系统功能。其稳定运行依赖于服务控制管理器、注册表配置和系统文件完整性。当关键服务(如Windows Update、安全中心服务)因更新失败、权限错误或组件损坏而无法正常启动时,依赖其功能的应用程序界面便会出现加载异常。在系统维护与故障排除领域,通过命令行工具重置服务状态、修复系统映像已成为工程师的必备技能。本文聚焦Windows安全中心界面空白这一典型故障,深入剖析其与Windows Update服务、组件存储损坏的关联,并

weixin_30859423的博客 423

黑马go语言视频教程

原文地址:来了,你们要的Go,某马Go语音视频教程 之前分享的视频,Python、Java 的居多,现在好像 Go 很火? 后台一堆找我问我要 Go 的。 这让我左右为难啊 不过还是要迎难而上,对不对? 于是,网上一顿搜,找到了一堆 我又进行了筛选 最终确定了一份看着还不错的视频教程 目录 嗯,又是黑马的 ├─第1天视频(基本类型、流程控制) │ 01_课程安排 │ ...

生命在于折腾 7882

记一次Nacos线程数飙升排查

Nacos线程飙升问题排查

叭嘣的博客 2631

黑马程序员-枚举

------- android培训、java培训、期待与您交流! ---------- 枚举, 枚举就是预先定义一个类型定义的值,在用的时候就只能用定义过的值,否则编辑不通过。这就是枚举的好处。 枚举类相当于一个类,枚举相当于这个枚举类的一个对象。而每个有类主体的枚举都是一个类,匿名类,在bin目录下会有这个匿名枚举类的class文件。  枚举只有一个成员时,就可以作为一种

a413867670的专栏 679

基于 Simulink 的飞轮储能系统(Flywheel Energy Storage System, FESS)充放电协调控制实战教程

本教程详细介绍了基于Simulink的飞轮储能系统(FESS)建模与控制方法。系统采用永磁同步电机(PMSM)和背靠背变流器架构,包含机侧全速域矢量控制和网侧直流稳压控制。重点讲解了机电耦合建模、FOC控制算法实现、基于电压下垂的协调控制策略,以及混合储能系统设计思路。教程提供了MATLAB函数代码示例,并给出典型工况下的仿真波形分析指南,同时指出了常见问题解决方案。该模型可用于研究飞轮储能在调频、能量回收等场景的应用,为新能源消纳和微网稳定提供仿真工具。

MHD0815的博客 166

基于STM32的智能宠物喂食系统设计与实现(代码+PCB )

STM32;DHT11;本系统的软件程序基于Keil MDK-ARM V5集成开发环境进行编写和编译。Keil MDK是ARM公司官方推荐的嵌入式开发工具,支持ARM Cortex-M系列微控制器的程序开发,内置ARM C/C++编译器、调试器和仿真器,具有代码编辑、语法高亮、工程管理和在线调试等功能,是STM32开发领域应用最为广泛的IDE之一。

3254968421的博客 72

黑马程序员 Java 加强

---------------------- android培训、java培训、期待与您交流! ---------------------- 1.可变参数 可变参数特点: 只能出现在参数列表的最后; ...位于变量类型和变量名之间,前面有无空格都可以; 调用可变参数的方法时,编译器为该可变参数隐式创建一个数组,在方法体内以数组的形式访问可变参数 7 public cla...

weixin_30276935的博客 245

组基轨迹建模 GBTM的介绍与实现(Stata 或 R)

组基轨迹建模(Group-Based Trajectory Modeling,GBTM)(旧名称:Semiparametric mixture model)历史:由DANIELS.NAGIN提出,发表文献《Analyzing Developmental Trajectories:A Semiparametric,Group-Based Approach》GBTM能够将一群人的轨迹分类并生成数个具有代表性的运动轨迹模型,然后对每个轨迹模型进行分析,以了解人们的运动特征、生理水平和风险等级等。

三分钟热度 1万+

黑马程序员_Java枚举的七种常见用法

------- android培训、java培训、期待与您交流! ---------- Java枚举的七种常见用法 JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一

gbl250250的专栏 586

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

黑马程序员—C语言—数组、字符串、结构体和枚举

————————Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——————— 一、数组 1.数组的定义格式: 类型      数组名[元素个数]; 例如: int ages[5] = {19, 19, 28, 27, 26};还有其他写法: int ages[5] = {19, 19};int ages[5] = {[3] = 27, [4] = 26

编程之路 434

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【黑马程序员】————typedef

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、typedef作用简介 * 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。 1 #include <stdio.h> 2 3 typedef int Integer; 4 typedef unsigned int ...

aa123321621的博客 208

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

黑马程序员-学习笔记/枚举

枚举类型使用!公用类调用

zhu_chan的专栏 744

黑马程序员-学习枚举、结构体和数组的笔记

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 经过前几天的学习,现在整理并巩固一下C#中的一些基础知识:结构体、枚举和数组 1、结构体: 语法: 访问修饰符   struct   结构名   {        //定义结构成员   } (在结构中定义变量时,必须要加p

ARMdong的专栏 726

黑马程序员--java枚举类型

----------android培训、java培训、java学习型技术博客、期待与您交流! ---------- 通过使用新的enum关键字创建指定的对象集合,您可以创建一个枚举类型。然后,可以将每个指定的值看作是那个类的一个实例。 枚举(Enum):我们所定义的每个枚举类型都继承自java.lang.Enum 类,枚举中的每个成员默认都是public static final的。

837602401的专栏 488

黑马程序员 19 Java基础加强-01-基础篇

About 拆箱与装箱、可变参数、枚举   1、基本数据类型的自动拆箱与装箱 Code1     // 自动装箱与拆箱(设计模式:享元设计模式) 整数型-128~127 Integer iObj1 = 127; Integer iObj2 = 127; System.out.println(iObj1==iObj2); System.out.println(iO

kongbeily的专栏 3569

7.内部类-枚举-泛型---黑马程序员

D:\code\黑马\code\oop-up-app03\src\com\LMH。

weixin_45336151的博客 171

黑马全网首发!《鸿蒙NEXT星河版》入门到实战教程重磅发布!

众所周知2024年最热门的就是懂鸿蒙的人才专业人士从来不放“马后炮”未来操作系统只看鸿蒙学鸿蒙开发只看黑马程序员每一次大的技术变革都是勇敢者的游戏鸿蒙生态大势已成面对这样的时代机遇历史已多次证明先出手者,总能吃到大肉!黑马程序员全网首发HarmonyOS NEXT 星河版零基础到实战开发教程十大章节,极致高效项目实战,一步到位零基础小白,无障碍可学 还是那句话,学到就是赚到!!!...

传智播客的专栏 1594

黑马程序员--------------Enum 枚举

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 看了点东西,发现对java枚举不是很了解,然后就找找看看记记了。 为什么要用枚举呢?枚举再jdk1.5之前是没有的,1.5之后java才支持枚举。为什么要用枚举呢? 如果一个变量只有几种可能的值,这时候我们可以用int、String或者其他类型的变量来表示,虽然可以

Maiuiie的专栏 604

黑马程序员__用普通类模拟枚举的实现原理

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ---------- 枚举就是让某个变量的取值只能为若干个固定值中的一个,否...

weixin_30398227的博客 106

黑马程序员————学习日记【19】 【基础加强3】

------- android培训、java培训、期待与您交流! ----------   摘要:   eclipse的使用技巧 静态导入 可变参数与for循环增强 基本数据类型的自动拆箱与装箱 枚举 反射JavaBean内省beanutils工具包 注解 泛型 类加载器 代理 线程并发库 ===============================================

xinghuo189的专栏 381

黑马最新MybatisPlus教程!帮你实现快速开发

MybatisPlus是一款开源的Java持久层框架,是基于Mybatis的增强工具,它通过封装底层细节,提供了简单、便捷的数据库操作方法,可以简化数据库操作,提高开发效率!

技术专家 388
上一篇: 黑马程序员_18基本数据类型的自动拆箱与装箱
下一篇: 黑马程序员_交通灯系统的设计、分析与实现
孔子云
博客等级 码龄15年 1粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值