java 枚举示例:ValueOf、toString、Switch、compareTo

类型 枚举 在 Java 中 是一种特殊的数据类型,可用于声明常量变量。在 Java 中,枚举类型的声明关键字是 enum.

enum

的示例我们想用五个搜索引擎声明一个枚举变量:

public enum searchengines{Google, Yahoo, Bing, Exhead, Baidu};
末尾的逗号是可选的,两次写入都是合法的。
您可以访问常量:

enginesSearch engine = 搜索引擎.Google;
所有枚举都继承自 class java.lang.Enum因为一个类只能从一个父接口继承,而只能从多个接口继承。

枚举类型是一个强大的工具 因为它定义了一个类或接口,我们可以将方法和属性放入其中。默认情况下,编译器会添加诸如 values()它返回一个数组,其中包含按声明顺序排列的值。

使用 for

静态方法 values() 在扫描的情况下很有用,例如:

for( 搜索引擎 发动机: searchengines.values()) {
     System.out.println(引擎);
}

属性和方法

枚举类型可以包含构造函数、方法、变量和常量。您可以使用应作为构造函数中的参数传递的值初始化常量。

public class EnumExample {

public enum searchengines{
Google(160), Yahoo(66.4f), Bing(7.f), Baidu(66), Ask(4.6f);
私人花车游客;

private searchengines(float visitors) {
this.visitors = visitors;
}
}

public static void main(String[] args) {
for( search engines: searchengines.values()) {
System.out.println(Search engine: ”+engine+
visitors: ”+engine.visitors+ millions”);
}
}
}
输出:

搜索引擎: Google 访问者: 1.60 亿
搜索引擎: Yahoo 访问者: 6640 万
搜索引擎: Bing 访问者: 700 万
搜索引擎: 百度访客:6600万
搜索引擎:询问访客:460万
常量声明 staticfinal,并且一旦创建就无法更改。

两个枚举之间的相等性比较

比较是使用 equals() 或运算符 '==',两者都给出相同的结果,因此您可以选择.

google search engines = searchengines.Google;
if(google.equals(GoogleSearchengines))
System.out.println(与等号的比较”);
if(google == searchengines.Google)
System.out.println(与==的比较”);

The Switch instruction

public class EnumExample{

public enum searchengines{
Google(160)、Yahoo(66.4f)、Bing(7.f)、Baidu(66)、Ask(4.6f);
私人花车游客;

private searchengines(float visitors) {
this.visitors = visitors;
}
}

搜索引擎名称;

EnumExample(搜索引擎名称){
this.name=name;
}

public void slogan() {
switch (name) {
Google:
System.out.println(不要恶意,不要作恶”);
遗产;
box Yahoo:
System.out.println(Yahoo! 是你。你是雅虎吗?
遗产;
box Bing:
System.out.println(必应是用来做的。
遗产;
box Baidu:
System.out.println(百度更懂中文”);
遗产;
box Ask:
System.out.println(你的问题是什么?
遗产;
}
}

public static void main(String[] args) {
Google Example = new ExampleNumber(SearchEngines.Google);
google.slogan();
例枚举 yahoo = new 例例 Enum(Searchengines.Yahoo);
yahoo.slogan();
示例 Num bing = new SampleNum(SearchEngines.Bing);
bing.slogan();
百度示例枚举 = new 百度示例枚举(SearchEngines.Baidu);
baidu.slogan();
EnumExample ask = new EnumExample(Searchengines.Ask);
ask.slogan();
}
}
不能使用 new 关键字创建枚举实例,因为构造函数已声明 私人 并在运行时创建。即使您不将其设置为 private,它仍然被视为 private。

toString 和 ValueOf

toString 返回常量的名称:

System.out.println(yahoo.toString());
函数 valueOf() 对方法进行反向处理 toString(),我们给它起名字,它返回常量:

System.out.println(yahoo.valueOf(Yahoo”));

compareTo

此函数用于比较两个枚举,如果此对象分别小于、等于或大于,则返回 -1、0、1。

System.out.println(google.compareTo(yahoo));
控制台显示 -1,因为google”是在yahoo”之前声明的。

要记住的内容:
  • 轻松声明常量和相关值。
  • 枚举 继承自 java.lang.Enum.
  • 枚举无法实现接口。
  • 枚举 <方法和变量不能像 .
  • ><>
  • 变量和构造函数一样声明为私有变量。
  • 允许使用以下方法比较两个枚举 compareTo().
  • Les 枚举 与 Switch.
References: