枚举、记录

枚举(enum) -- 基本概念和语法

所谓枚举 -- 是一种取值范围固定在某个指定集当中的数据类型。 定义的语法:

 public enum 枚举类型名{
    值选项1,值选项2,....,值选项n;
 }

注意点

1、这里的值选项是标识符,不是字符串;

2、这里的值选项是有顺序的;

3、值选项不能重复。

使用的语法:

 枚举类型 变量 = 枚举类型.值选项;

枚举的本质

枚举其实是一个语法糖,在本质它是一个自动继承于Enum类的子类。 Enum类来自于java.lang包,是一个抽象类。Enum拥有的属性行为,所有的枚举类型都拥有。

属性:

name -- 选项名字 String

ordinal -- 选项的序号 int

这两个属性都是私有的常量,也就是说外部不可访问,同时一旦产生Enum对象以后其值也不能修改。

非static方法:

name() -- 返回选项的名字

ordinal() -- 返回选项的序号

compareTo() -- 比较两个枚举对象的大小,返回的是它们的序号差

另外凡是来自于Object类的方法,它都有。包括: equals() -- 判断两个枚举对象是否相等 toString() -- 返回枚举的字符串描述,其实重写后就是返回的name

static方法: values() -- 以数组的形式返回这个枚举类里面有哪些选项。

  1. enum枚举就是类类型;

  2. 父类是Enum是一个抽象类,来自于java.lang包;

  3. 常用方法: compareTo() equals() values()

枚举的高阶使用

1、在自定义的enum类型中可以增加属性;

2、在自定义的enum类型中可以增加行为;

3、在自定义的enum类型中可以重写从Enum中继承而来的方法

4、在自定义的enum类型中可以增加构造。

记录(record) 

在JDK14当中,提供了一种新的类型叫做record(记录)。它是专门用来定义一种特殊类的“简化语法”。

什么样的特殊类呢? 专门用来存放属性值,且每个属性的值一旦确立不能修改。这种类的预设场景是在做数据传输的时候。 用传统语法做这种类的设计,写起来比较麻烦。因此专门设计了record类型的语法。

定义语法:

//这里()里面既可以称之为参数,也可以称为属性
public record 名字(书写上参数){
​
}
​
然后它自动生成带参构造,自动生成final属性,自动生成与属性名保持一致的get方法,自动重写toString()

record的本质

也是语法糖,它也是类类型,它父类是来自于java.lang.Record的抽象类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值