java enum compare_Java中枚举类型

本文详细介绍了Java中的枚举类型,包括如何使用枚举类型设置变量、枚举类型的values()方法、valueOf()方法、compareTo()方法以及ordinal()方法。枚举类型提供了编译时的类型检查,增强了代码的健壮性。通过示例代码,展示了如何在实际编程中应用这些方法,并强调了它们相比传统常量定义的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、枚举类型

使用枚举类型,可以取代前面学习过的定义常量的方式,同时枚举类型还赋予程序在编译时进行检查的功能。

1.1使用枚举类型设置变量。

枚举类型语法:public enum Constants{

Constants_A,

Constants_B,

Constants_C,

}

注:Constants表示枚举类名。枚举中已经定义好了final public static

public enum season {

SPRING, SUMMER, AUTUMN, WINTER;// 将常量放在枚举类型中

}

public static void method(season s) { // 定义一个参数对象是枚举类型的方法

switch (s) { // 根据枚举类型对象做不同操作

case SPRING:

System.out.println("这是春天");

break;

case SUMMER:

System.out.println("这是夏天");

break;

case AUTUMN:

System.out.println("这是秋天");

break;

case WINTER:

System.out.println("这是冬天");

break;

}

}

public static void main(String[] args) {

method(season.AUTUMN);//这是秋天

}

枚举设置常量:1.需要传入对象 2.防止了常量名的相同

1.2深入了解枚举类型

枚举类型较传统定义变量的方式,除了具有参数类型检测的优势之外,还具有其他方面的优势。

1.2.1values()方法

values()方法可以将枚举类型成员以数组的形式返回。

语法:枚举类型名称.values()

public enum season {

first,second,third,forth,fifth

}

public static void main(String[] args) {

for(int i=0;i

System.out.println("枚举类型成员变量:"+season.values()[i]);

}

}

4271050e0f23

image.png

1.2.2valueOf()

valueOf()可以实现将普通字符串转换为枚举实例

语法:枚举类型名称.valueOf(“abc”)

public enum season {

first,second,third,forth,fifth

}

public static void main(String[] args) {

season c1=season.first;

season c2 =season.valueOf("first");

System.out.println("两种构造方法是否相同"+(c1==c2));//true

}

注意:普通字符串应该是枚举类型中的

1.2.3compareTo()方法

compareTo()方法比较两个枚举对象在定义时的顺序

语法:枚举对象.compareTo()

参数在调用该方法的枚举对象之前:返回正值

参数与调用该方法的枚举对象相同:返回0

参数在调用该方法的枚举对象之后:返回负值

public enum season {

first,second,third,forth,fifth

}

public static void main(String[] args) {

season c3= season.third;

for(int i=0;i

System.out.println(c3+"与"+season.values()[i]+"比较的结果为"+c3.compareTo(season.values()[i]));

}

}

4271050e0f23

image.png

1.2.4ordinal()方法

ordinal()方法得到枚举成员的位置索引。

语法:枚举对象.ordinal()

public enum season {

first,second,third,forth,fifth

}

public static void main(String[] args) {

for(int i=0;i

System.out.println(season.values()[i]+"的编号为"+season.values()[i].ordinal());

}

}

4271050e0f23

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值