当前位置: 首页 > news >正文

面向对象高级(枚举)

3.1 认识枚举
3.1.1 认识枚举、枚举的原理

枚举是一种特殊的类,它的格式是:

public enum 枚举类名{
枚举项1,枚举项2,枚举项3;
}
3.1.2 枚举深入

public enum A{
//定义枚举项
X,Y,Z("张三"); //枚举项后面加括号,就是在执行枚举类的带参数构造方法。

//定义空构造器
A(){

}

//成员变量
private String name;

//定义带参数构造器
A(String name){
this.name=name;
}

//成员方法
public String getName(){
return name;
}
...
}
public class Test{
public static void main(String[] args){
//获取枚举A类的,枚举项
A a1 = A.X;
A a2 = A.Y;
A a3 = A.Z;

// 获取X当前的位置
System.out.println(a2.ordinal());

// 获取Z后的字符串名称
System.out.println(a3.getName());
}
}
虽然枚举类中可以像类一样,写一些类的其他成员,但是一般不会这么写,如果你真要这么干的话,到不如直接写普通类来的直接。

枚举类的特点:
枚举类的第一行只能罗列一些名称,这些名称都是常量,并且每个常量记住的都是枚举类的一个对象。
枚举类的构造器都是私有的(写不写都只能是私有的),因此,枚举类对外不能创建对象。
枚举都是最终类,不可以被继承。
枚举类中,从第二行开始,可以定义类的其他各种成员。
编译器为枚举类新增了几个方法,并且枚举类都是继承:java.lang.Enum类的,从enum类也会继承到一些方法。
3.2 枚举的应用场景
枚举一般表示一组信息,然后作为参数进行传输。

这里我们就可以先定义一个枚举类,用来表示男生、或者女生

public class Constant{
BOY,GRIL
}
再定义一个测试类,完成用户进入系统后的选择

public class Test{
public static void main(String[] args){
//调用方法,传递男生
provideInfo(Constant.BOY);
}

// 参数是根据用户选择的性别来进行判断
public static void provideInfo(Constant c){
switch(c){
case BOY:
System.out.println("展示一些信息给男生看");
break;
case GRIL:
System.out.println("展示一些信息给女生看");
break;
}
}
}
最终再总结一下枚举的应用场景:枚举一般表示几个固定的值,然后作为参数进行传输。

总结:
1. 选择定义一个一个的常量来表示一组信息,并作为参数传输参数值不受约束。
2. 选择定义枚举表示一组信息,并作为参数传输代码可读性好,参数值得到了约束,对使用者更友好,建议使用!
————————————————
版权声明:本文为CSDN博主「Han_han919」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Han_han919/article/details/160214782

http://www.jsqmd.com/news/653954/

相关文章:

  • 深入解析Dify 502 Bad Gateway:从Docker网络配置到Nginx代理修复
  • 深入I2C的inout端口:从Verilog到FPGA/ASIC物理实现的完整指南
  • 开放式创新与封闭式创新
  • 小白友好!MT5中文改写工具使用教程:从安装到生成全流程
  • 0基础速通Python+AI|2026热门轻量化玩法全攻略:从入门到实战,3天搞定AI应用开发
  • 避免踩坑:GitLab Runner用户权限配置的5个关键注意事项
  • 用STM32和PID算法,手把手教你做一个带双环控制的数控电源(附完整代码)
  • 元机器人详细设计文档
  • Qwen3.5-9B镜像免配置实操:一键拉起服务+7860端口安全访问配置
  • 关系型数据库MySQL(五):Galara高可用
  • 如何用四维矩阵建模计算性的态势感知与算计性的势态知感?
  • python面向对象————图书馆借阅系统(综合练习)
  • CLIP-GmP-ViT-L-14图文匹配工具惊艳效果展示:Softmax置信度进度条可视化
  • 元机器人codebuddy开发实践,阶段一:搭建元智能体基础框架
  • 保姆级教程:在Ubuntu 20.04上从源码编译Carla 0.9.4(含Anaconda环境配置与UE4.21.2安装)
  • 从Focal Loss到ASL:多标签分类损失函数演进史与实战选型指南
  • 三步掌握百度网盘秒传:永久分享文件不再失效
  • 5分钟学会mPLUG视觉问答:本地图片分析工具搭建教程
  • 元机器人codebuddy开发实践,阶段二:接入沙箱 + 3D 建模模块生成智能体
  • LFM2.5-1.2B-Thinking完整教程:Ollama环境配置、模型使用与高级功能
  • 别再拍脑袋估算了!手把手教你用山东新规里的‘功能点法’算准软件开发预算
  • 如何用树状书签管理工具彻底解决浏览器书签混乱问题?
  • Vision Pro 8.4 保姆级安装教程:从下载到激活,手把手带你避开许可证过期坑
  • https://www.cnblogs.com/Un1corn/p/18615567
  • 从流体模拟到电磁场:梯度、散度、旋度在Unity/Blender中的3D可视化实战
  • SUPER COLORIZER色彩科学解析:模型如何学习并再现人类色彩认知
  • Qwen2.5-7B-Instruct商业应用:广告公司创意文案+分镜脚本生成
  • 别再死磕手册了!STM32F429以太网实战:手把手教你搞定MAC与PHY芯片选型与连接
  • 告别STM32,试试用FPGA+Verilog做超声波测距:精度与实时性的提升实战
  • C 语言转义字符算字节的完整规则