我们先来看一看代码,这是ESeason.java文件
package com.haligong.Jse;
/**
* Created by Administrator on 2019/6/11.
*/
interface origin{
void go();
}
public enum ESeason {
/* //这是第一种写法
SPRING,FALL,WINTER,SUMMER;
public void go(){
switch(this){
case SPRING:{
System.out.println("SPRING");
break;
}
case SUMMER:{
System.out.println("SUMMER");
break;
}
case FALL:{
System.out.println("FALL");
break;
}
default:{
System.out.println("WINTER");
break;
}
}
}*/
//这是第二种写法
SPRING(){
public void go(){
System.out.println("这里是枚举类实例春天");
go1();
}
private void go1(){
System.out.println("春天里面而外的东西");
}
},
SUMMER(){
public void go(){
System.out.println("这是枚举类实例夏天");
}
},
FALL(){
public void go(){
System.out.println("这是枚举类实例秋天");
}
},
WINTER(){
public void go(){
System.out.println("这是枚举类实例冬天");
}
};
abstract void go();//这里要是public才行,不然别的包下面不好使
public void go2(){
System.out.println("我这里没有问题");
}
}
当在另一个包下面的文件中调用枚举类时,就会发生错误看下面的代码testESeasno.java
package com.haligong.test;
import com.haligong.Jse.ESeason;
/**
* Created by Administrator on 2019/6/11.
*/
public class testESeason {
public static void main(String[] args) {
for(ESeason e:ESeason.values()){//这个的顺序是枚举类里面定义时的顺序
e.go();
}
}
}
在e.go()就会报错
解决的方法很简单,就是在ESeasno中的abstract void go(){…}的前面加上public
版权声明:本文为qq_37852483原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。