java枚举的调用(枚举 java)

华为云服务器特价优惠火热进行中!

2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。

合作流程:
1、点击链接注册/关联华为云账号:点击跳转
2、添加客服微信号:cloud7591,确定产品方案、价格方案、服务支持方案等;
3、客服协助购买,并拉微信技术服务群,享受一对一免费技术支持服务;
技术专家在金蝶、华为、腾讯原厂有多年工作经验,并已从事云计算服务8年,可对域名、备案、网站搭建、系统部署、AI人工智能、云资源规划等上云常见问题提供更专业靠谱的服务,对相应产品提供更优惠的报价和方案,欢迎咨询。

今天给各位分享java枚举的调用的知识,其中也会对枚举 java进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

微信号:cloud7591
如需了解更多,欢迎添加客服微信咨询。
复制微信号

本文目录一览:

java枚举的几种用法

用法一:常量

在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,

有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

Java代码

public enum Color {

RED, GREEN, BLANK, YELLOW

}

用法二:switch

JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

Java代码

enum Signal {

GREEN, YELLOW, RED

}

public class TrafficLight {

Signal color = Signal.RED;

public void change() {

switch (color) {

case RED:

color = Signal.GREEN;

break;

case YELLOW:

color = Signal.RED;

break;

case GREEN:

color = Signal.YELLOW;

break;

}

}

}

用法三:向枚举中添加新方法

如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。

Java代码

public enum Color {

RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);

// 成员变量

private String name;

private int index;

// 构造方法

private Color(String name, int index) {

this.name = name;

this.index = index;

}

// 普通方法

public static String getName(int index) {

for (Color c : Color.values()) {

if (c.getIndex() == index) {

return c.name;

}

}

return null;

}

// get set 方法

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getIndex() {

return index;

}

public void setIndex(int index) {

this.index = index;

}

}

用法四:覆盖枚举的方法

下面给出一个toString()方法覆盖的例子。

Java代码

public enum Color {

RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);

// 成员变量

private String name;

private int index;

// 构造方法

private Color(String name, int index) {

this.name = name;

this.index = index;

}

//覆盖方法

@Override

public String toString() {

return this.index+"_"+this.name;

}

}

用法五:实现接口

所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。

Java代码

public interface Behaviour {

void print();

String getInfo();

}

public enum Color implements Behaviour{

RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);

// 成员变量

private String name;

private int index;

// 构造方法

private Color(String name, int index) {

this.name = name;

this.index = index;

}

//接口方法

@Override

public String getInfo() {

return this.name;

}

//接口方法

@Override

public void print() {

System.out.println(this.index+":"+this.name);

}

}

用法六:使用接口组织枚举

Java代码

public interface Food {

enum Coffee implements Food{

BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO

}

enum Dessert implements Food{

FRUIT, CAKE, GELATO

}

}

private static void testImplementsInterface() {

for (Food.DessertEnum dessertEnum : Food.DessertEnum.values()) {

System.out.print(dessertEnum + " ");

}

System.out.println();

//我这地方这么写,是因为我在自己测试的时候,把这个coffee单独到一个文件去实现那个food接口,而不是在那个接口的内部。

for (CoffeeEnum coffee : CoffeeEnum.values()) {

System.out.print(coffee + " ");

}

System.out.println();

//搞个实现接口,来组织枚举,简单讲,就是分类吧。如果大量使用枚举的话,这么干,在写代码的时候,就很方便调用啦。

//还有就是个“多态”的功能吧,

Food food = Food.DessertEnum.CAKE;

System.out.println(food);

food = CoffeeEnum.BLACK_COFFEE;

System.out.println(food);

}

怎么使用java中的枚举方法

怎么解释枚举呢。枚举的定义就是一个有限值的集合。一个枚举类型的变量它的值只可能是类型值中的一个。

所以 Drection 是类型名,Drection drection 则是此类型的变量,变量的值应该是类型里边所列的值中的一个,如果单写个 WEST跟本不知道它是什么,所以要加类名限定 即 Drection.WEST. 于是,对一个枚举变量赋值的样子就像这样。

 if(drection==Drection.WEST) return true;   String west="WEST"; drection.toString().equals(west) return true;

Java枚举中的方法调用问题

定义一个简单的枚举代码

public enum WorkDay{ Monday,Tuesday,Wednesday,Thurday,Friday;//定义时,枚举值间有逗号隔开,最后用分号结束 }

废话不多说,直接上main 方法,拿去玩玩吧:

Java代码

public static void main(String []args) { /** * 枚举类型是一种类型,既然是类型,就是跟int,char他们 一样的, * 拿来定义变量,限制你对变量的赋值,就像 int a,你不能够给a一个 string的值 * 同理,一个枚举用来定义一个变量时,你只能够赋枚举值,其方式为 * "枚举名.值" */ WorkDay myworkday=WorkDay.Wednesday; /** 补充点switch的基础知识,switch语句括号中支持byte \short \char \int类型, * jdk 1.5以后支持枚举,所以,这里可以直接使用枚举变量myworkday。 * 呵呵,在jdk1.7后将switch将支持string */ switch (myworkday) { /*枚举重写了toString()方法,所以枚举变量的值不带前缀 * myworkday 里面的值应该是枚举括号里面的那几个 */ case Monday: System.out.println("you work day is Monday !"); break; case Tuesday: System.out.println("you work day is Tuesday!"); break; case Wednesday: System.out.println("you work day is Wednesday !"); break; case Thurday: System.out.println("you work day is Thurday !"); break; case Friday: System.out.println("you work day is Friday !"); break; } System.out.println("--------遍历所有值----------"); //----使用values()方法返回一个数组 for(WorkDay day:WorkDay.values()) { System.out.println(day); } //-----既然是数组,就可以统计大小 System.out.println("WorkDay 里面有 "+WorkDay.values().length+" 个元素"); //--------------------调用 ordinal()方法,返回枚举值在枚举中的索引,数组索引嘛,当然从0开始 System.out.println(WorkDay.Monday.ordinal()); System.out.println(WorkDay.Friday.ordinal()); //---默认实现java.lang.Comparable接口 ,测试测试 System.out.println(WorkDay.Monday.compareTo(WorkDay.Thurday));//结果应该是 -3 //---Monday的索引为0,Thurday为 3,0-3=-3, System.out.println(WorkDay.Friday.compareTo(WorkDay.Tuesday));//同理,结果应该为4-1=3, }

简单吧,来点狠的,前面说了,枚举有点像类,只是把class换成了enum,那么它跟一般的类一样可以添加属性或方法。

带方法与属性的enum代码

public enum WeAreJavaer{ chinese,java, spring, DB2, AIX; // 枚举列表,必须写在最前面,否则编译出错 private final static String location = "javaeye"; //定义一个属性 public static WeAreJavaer getInfomation() { WeAreJavaer flag=null; if (location.equals("javaeye")) { flag=java; } else { flag= chinese; } return flag; } }

老规矩,直接上main()方法测试:

写道

public static void main(String []ags) { System.out.println("---------------------测试调用枚举中写的方法-------------------------------"); System.out.println("直接调用枚举里面的方法: "+ WeAreJavaer.getInfomation()); }

3、来点更狠的。

你可以通过括号来给enum赋值,这样的话,你必须有带参的构造方法,还需要有一属性与方法,否则编译时会出错。

另外,你如果给enum里面的元素赋值的话,要么都赋,要么都不赋,不要东赋一个,西赋一个。

如果不赋值则不能写构造方法,如果你赋值了,而没有构造方法,编译还是通不过,废话不多少,来,看:

可赋值的enum代码

public enum People { xiaowang(20), xiaozhang(32),xiaoli(50), xiaogou(21); private final int age; People(int value) { //构造器只能是默认或者private, 从而保证构造函数只能在内部使用 this.age = value; } public int getAge() { return age; } }

好吧,啥也不说了,接下来的事,你懂地:

测试带值enum代码

public static void main(String[] args) {

for(People people:People.values()){

/*通过getValue()取得相关枚举的值*/

System.out.println(people+" 的年龄 :"+people.getAge());

}

}

Java 关于枚举,这段代码到底是怎样执行的

你可以把枚举当作是一种类型,比如enum Size你可以看作class Size这样的声明。

然后,SMLL("S")是什么意思呢,就相当于你在class Size这个类内部定义了这样一个常量对象:

public static final Size SMLL = new Size("S");

只不过用枚举的话这样这样的声明方式被简成SMLL("S"),这是声明枚举常量的方式,比较简单。就是说这样等于是调用了private Size(String abbreviation) {this.abbreviation = abbreviation; }这个构造函数。

java枚举类中,在main方法为什么可以这样调用

你是说Main函数,还是main()函数? 如果Main,那和一般的函数没区别,如果是main(),则不能直接调用。但可以通过java的Runtime类去执行。 比如你的D:盘根下有个java类 Hello.class,里面有main()函数

关于java枚举的调用和枚举 java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发布于 2023-04-04 06:04:10
收藏
分享
海报
42
目录

    忘记密码?

    图形验证码

    复制成功
    微信号: cloud7591
    如需了解更多,欢迎添加客服微信咨询。
    我知道了