枚举(枚举中定义其它结构)|学习笔记

简介: 快速学习 枚举(枚举中定义其它结构)

开发者学堂课程【【名师课堂】Java 高级开发枚举(枚举中定义其它结构)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/372/detail/4543


枚举(枚举中定义其它结构)


目录

一、 概念

二、 范例

 

一、 概念

虽然枚举等同于多例设计,但是多例设计是在一个类中产生的,所以该类中可以定义更多的属性或者是方法。

于是只依靠以上的上的概念只能够说产生了若干个对象,但是并没有方法去定义更多的结构,所以在枚举设计的时候考虑到了这些因素,提出了更强大的枚举设计方案:

可以在枚举里面定义属性、方法或者实现接口。

 

二、范例:在枚举中定义更多结构多例设计

package cn.mldn.demo;

enum Color  {

RED("红色"),GREEN("绿色"),BLUE("蓝色");//如果定义有很多内容,枚举对象必须写在第一行

private String title ;

private Color(String title)  {  //构造方法绝对不能够使用public

this.title = title;

}

public String toString() { //  覆写object 类中的方法

return this.title ;

}

}

public class TestDemo {

public static void main(String[ ] args)  {

System.out.println(Color.RED);

}

}

结果:红色

枚举本身还可以实现接口,这样枚举中的每一个对象实际上就都变为了接口对象。

范例:让枚举实现借口

package cn.mldn.demo;

interface Icolor {

public String getcolor ( )

}

enum Color implements Icolor { //实现了 Icolor 接口

RED("红色"),GREEN("绿色"),BLUE("蓝色");//如果定义有很多内容,枚举对象必须写在第一行

private String title ;

private Color(String title)  {  //构造方法绝对不能够使用 public

this.title = title;

}

public String toString() { //  覆写 object 类中的方法

return this.title ;

}

}

@Override

public String getColor() {

return this.title ;

}

}

public class TestDemo {

public static void main(String[ ] args)  {

Icolor ic =Color.RED

System.out.println(ic.getColor() );

}

}

执行结果:红色

这些只能够算是枚举的扩展特点,而其它的语言里面枚举没那么高级。

只有这样一句话: RED.GREEN,BLUE

相关文章
|
SQL 存储 关系型数据库
MySQL主从复制之原理&一主一从部署流程—2023.04
MySQL主从复制之原理&一主一从部署流程—2023.04
1785 0
|
网络协议 安全 网络安全
计算机网络:IP地址、子网掩码、网关都是什么?
计算机网络:IP地址、子网掩码、网关都是什么?
7676 0
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
5月前
|
前端开发 数据安全/隐私保护 Python
虚拟物流单号生成器, 虚拟快递单号假物流信息, 虚拟快递单号在线生成【python框架】
这个虚拟物流单号生成系统包含以下功能:支持多种主流快递公司的单号生成
|
机器学习/深度学习 数据采集 算法
Python实现WOA智能鲸鱼优化算法优化支持向量机回归模型(LinearSVR算法)项目实战
Python实现WOA智能鲸鱼优化算法优化支持向量机回归模型(LinearSVR算法)项目实战
|
运维 网络协议 算法
7 层 OSI 参考模型:详解网络通信的层次结构
7 层 OSI 参考模型:详解网络通信的层次结构
2594 1
|
NoSQL 消息中间件 数据库
fastadmin编辑方法
fastadmin编辑方法
256 0
|
Ubuntu Linux
Ubuntu 报错:System has not been booted with systemd as init system (PID 1). Can‘t operate.
系统未使用 `systemd` 初始化导致错误。解决方法是通过 `apt` 安装。首先备份并更换`sources.list`,添加阿里云镜像源,然后更新源并以管理员权限运行 `apt-get install systemd -y` 和 `apt-get install systemctl -y` 安装所需组件。
9604 3
|
Java Linux C++
boost::io_service解读
boost::io_service解读 asio是boost提供的一个c++异步编程模型库,其核心类io_service,在多线程编程里面提供了任务队列和任务分发功能,在socket、io编程里主要作为一个事件驱动器(完成端口、select、poll、epoll等)。
1870 0