作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写两个类:
一个用于机器人,它将具有唯一的 ID 和方向。另一个方向类将使用枚举作为机器人的方向。我尝试用以下方式编写它,但我认为我遗漏了一些东西......
package Q1;
public class Robot {
static int IDGenerator = 1000; //ID generator for class Robot
int RoboID; //The ID of the robot
Direction direction; //The Direction the robot is facing
//Constructor for Robot
public Robot(int dir){
this.direction = new Direction(dir);
this.RoboID = IDGenerator;
IDGenerator++;
}
}
枚举的类:
package Q1;
public enum Direction{
UP(1), RIGHT(2), DOWN(3), LEFT(4);
private final int dir;
//constructor for Direction enum for a robot
private Direction(int dir){
this.dir = dir;
}
//return facing direction of a robot
public int getDirection(){
return this.dir;
}
}
最佳答案
枚举不是通过new
实例化的;相反,它们在编译时有一组定义的实例。只需像这样直接访问实例即可:
public Robot(Direction dir) {
this.direction = dir;
}
您可以调用此构造函数,例如像这样:
Robot bot = new Robot(Direction.UP);
关于java - java中单独类中的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23361657/
我是一名优秀的程序员,十分优秀!