首先看一个例子:
package test;
public enum EnumTest {
STUDNT("liming", 12);
String name;
int age;
EnumTest(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public static void main(String[] args) {
System.out.println("name: "+ EnumTest.STUDNT.getName() + "\n"
+ "age is: "+ EnumTest.STUDNT.getAge());
}
}
上面这就是一个简单的枚举类。
要想使用枚举,首先认识到他就是一个类,不允许调用它的构造方法进行初始化。
那么,在使用枚举类的时候,是在什么时候进行初始化的呢? 接下来,我们一步一步的进行讲解。
首先,看下面的这段代码:
System.out.println("name: "+ EnumTest.STUDNT.getName() +"\n"+"age is: "+ EnumTest.STUDNT.getAge());
在上面的这段代码中,我们调用了EnumTest的STUDN,getName() 和getAge()方法,那么程序是怎么知道,要打印的那么和age 就是STUDNT后面对应的值呢?
其原因就是,在执行
EnumTest.STUDNT
的时候,调了构造器:EnumTest(String name,intage) {this.name = name;this.age = age; }
进行了初始化,将“liming”赋值给了name,将12赋值给了age。
所以当调用getName()和getAge的时候,知道name是liming,年龄是12了。
网友评论