本文目录一览:
- 1、java中枚举可以用中文吗
- 2、java中的枚举类型指的是什么啊?
- 3、Java语言中的枚举类型如何使用?
- 4、java中的枚举应该怎样深刻理解
- 5、java中的枚举是什么意思?
- 6、枚举的属性和方法
java中枚举可以用中文吗
可以。在java的枚举中,写代码是可以用中文的,系统可以检测出来。Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。
java中的枚举类型指的是什么啊?
在Java中,枚举类型本质上其实就是一个类,枚举中的常量都是该枚举类型的实例。虽然枚举类型有一些限制,比如不能再派生出子枚举类型,不能调用构造函数,不过我们仍然可以在枚举类型中定义构造函数、字段和方法
Java语言中的枚举类型如何使用?
Java语言中的枚举类型的使用方法如下:
用法一:常量;
public enum Color {
RED, GREEN, BLANK, YELLOW
}
用法二:switch;
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;
}
}
}
用法三:向枚举中添加新方法;
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;
}
}
用法四:覆盖枚举的方法;
public class Test {
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;
}
}
public static void main(String[] args) {
System.out.println(Color.RED.toString());
}
}
用法五:实现接口;
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);
}
}
用法六:使用接口组织枚举。
public interface Food {
enum Coffee implements Food {
BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO
}
enum Dessert implements Food {
FRUIT, CAKE, GELATO
}
}
以上就是Java语言中枚举类型的基本使用方法。
java中的枚举应该怎样深刻理解
枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。
Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。
1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。
2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。
3.Enum默认实现了java.lang.Comparable接口。
4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”.
5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。
6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。
7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。
java中的枚举是什么意思?
Java的Enumeration(枚举,注释②)便是具有这些限制的一个反复器的例子。除下面这些外,不可再用它做其他任何事情:
(1)
用一个名为elements()的方法要求集合为我们提供一个Enumeration。我们首次调用它的nextElement()时,这个Enumeration会返回序列中的第一个元素。
(2)
用nextElement()获得下一个对象。
(3)
用hasMoreElements()检查序列中是否还有更多的对象。
②:“反复器”这个词在C++和OOP的其他地方是经常出现的,所以很难确定为什么Java的开发者采用了这样一个奇怪的名字。Java
1.2的集合库修正了这个问题以及其他许多问题。
枚举的属性和方法
枚举在Java中是一个类 ,代表着类的一一列举。要想知道枚举具体的使用首先要先知道它的具体的 属性 和 方法 才可以。虽然说我们在实际应用中很少去关注它的属性和方法,而是更多的关注它的 特性 ,利用它本身的特性去满足各种有意思的场景。
由于上篇内容讲了我们自定义的枚举其实经过编译之后,实际继承的是lang包下的Enum类。虽然我们自定义的枚举类中可能存在不定义私有属性的情况,但继承的Enum类中自身就带有着两个属性,name属性、和ordinal属性。Enum类的源码
name为我们枚举值的名称,而ordinal这个词的意思是“序数”或者说“有顺序的”,其实就是序数。我们知道枚举所代表的就是包含一个以上枚举值的集合,既然是集合它就是有顺序的,而大多数我们使用的时候往往忽略了它的序数这个属性,似乎忘了枚举是枚举这件事了。
枚举中的序号是根据我们的枚举中显示的顺序决定的,其实是是语法糖转换时初始化枚举值时决定了枚举值的序数,枚举中,第一个枚举值的序数总是小于后面枚举值的序数,且序数是从0开始的。
接着上面讲的序数ordinal,针对序数我们先讲枚举的values()方法。
作为一个枚举值的集合,所必须要有的操作肯定是遍历,这也是静态常量所没有的支持的。values()其实就是获取我们枚举值的数组:
虽然我们自定义的枚举类是可以使用这个方法的,但继承的Enum类却没有这个方法,其实values()这个方法是很特殊的一个方法,之前说过枚举是一种语法糖,在它真正编译后,就会产生values()这个方法,所以我们自定义的枚举类是可以使用这个方法的,而且values()方法所返回的其实是一个浅拷贝;
前面说到枚举有两个属性,name和ordinal,但实际上枚举只提供了根据name来获取具体枚举值的方法,却没有提供根据ordinal来获取具体枚举值的方法,但是values()方法也算是另外一种弥补了,根据values()得到的数据再根据ordinal序数获取具体的枚举值其实也是一样的效果。valueOf()方法就是那个根据name获取具体枚举值的方法,使用案例:
可选姿势为两种,一参和两参,具体看案例。