我可以通過值或只按名稱接近枚舉? 例如我有一個機器人,初始化方向「向上」 然後我想改變他的方向,向左轉,但它會更方便處理數字代表方向,而不是字符串「向右向下向左」 ...枚舉整數和名稱
枚舉類:
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;
}
//return the direction for represented number
public Direction getDirFromNumber(){
return this.dir;
}
}
Robot類:
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(Direction dir){
this.direction = dir;
this.RoboID = IDGenerator;
IDGenerator++;
}
//Turning the robot left
public void turnLeft(){
if (direction.getDirection()==1)
this.direction = Direction.LEFT;
else this.direction
}
}
我的問題是,我如何通過枚舉代表的數量和其他的時間與「逼近方向一次UP RI GHT DOWN LEFT「?
你的turnLeft方法似乎很奇怪。你希望它轉向一些全球定義的「左」而不是相對於它自己 –