Java枚举和具有私有构造函数的类之间有什么区别?
2022-08-31 15:41:59
我试图理解Java枚举是如何工作的,我得出的结论是,它与普通的Java类非常相似,它的构造函数声明为私有。
我刚刚得出了这个结论,它不是基于太多的思考,但Id想知道我是否错过了什么。
下面是一个简单的 Java 枚举和一个等效的 Java 类的实现。
public enum Direction {
ENUM_UP(0, -1),
ENUM_DOWN(0, 1),
ENUM_RIGHT(1, 0),
ENUM_LEFT(-1, 0);
private int x;
private int y;
private Direction(int x, int y){
this.x = x;
this.y = y;
}
public int getEnumX(){
return x;
}
public int getEnumY(){
return y;
}
}
上面和下面的代码在含义上有什么区别?
public class Direction{
public static final Direction UP = new Direction(0, -1) ;
public static final Direction DOWN = new Direction(0, 1) ;
public static final Direction LEFT = new Direction(-1, 0) ;
public static final Direction RIGHT = new Direction(1, 0) ;
private int x ;
private int y ;
private Direction(int x, int y){
this.x = x ;
this.y = y ;
}
public int getX(){
return x;
}
public int getY(){
return y;
}
}