整数常量作为字符串?
Integer constants as strings?
这个class的要求如下:
Write a class called Elevator that should contain the following member variables:
- currentFloor (int)
- elevatorState (an int constant, either IDLE, TO_SOURCE, or TO_DESTINATION)
- request (Request object representing the request being handled or null if the Elevator is idle)
You should also provide for this class the following:
A default constructor that sets request
to null, elevatorState
to IDLE, and currentFloor
to 1.
Accessor and mutator methods for each variable.
Final variables to represent IDLE, TO_SOURCE, and TO_DESTINATION.
这是我的:
public class Elevator {
private int currentFloor;
private int elevatorState;
private Elevator request;
public Elevator(){
currentFloor = 1;
elevatorState = ; //this is my problem
request = null;
}
}
我很困惑,因为它说要将 IDLE、TO_Source 和 TO_DESTINATION 声明为整数常量,但它们不是字符串吗?
任何澄清都会很有帮助。
基本上,要求的是3个int常量:
public static final int IDLE = 0;
public static final int TO_SOURCE = 1;
public static final int TO_DESTINATION = 2;
public Elevator(){
currentFloor = 1;
elevatorState = IDLE; //this is no longer my problem
request = null;
}
但是,如果您想成为花哨的先生并正确使用 OOP(可能无法教授的东西),您可以使用枚举!
public enum ElevatorState {
IDLE, TO_SOURCE, TO_DESTINATION
}
然后在你的 class:
public class Elevator {
private ElevatorState elevatorState;
private int currentFloor;
private Elevator request;
public Elevator() {
currentFloor = 1;
elevatorState = ElevatorState.IDLE; //this is no longer my problem
request = null;
}
}
我的Java有点生疏了,不过这个用起来应该没问题。
好吧,这里有一个可能的解决方案:
public class Elevator
{
private static final int IDLE = 0;
private static final int TO_SOURCE = 1;
private static final int TO_DESTINATION = 2;
private int currentFloor;
private int elevatorState;
private Elevator request;
public Elevator(){
currentFloor = 1;
elevatorState = IDLE; //this is my problem
request = null;
}
public int getCurrentFloor() {
return currentFloor;
}
public void setCurrentFloor(int currentFloor) {
this.currentFloor = currentFloor;
}
public int getElevatorState() {
return elevatorState;
}
public void setElevatorState(int elevatorState) {
if( elevatorState == IDLE ) setRequest( null );
this.elevatorState = elevatorState;
}
public Elevator getRequest() {
return request;
}
public void setRequest(Elevator request) {
this.request = request;
}
}
这个class的要求如下:
Write a class called Elevator that should contain the following member variables:
- currentFloor (int)
- elevatorState (an int constant, either IDLE, TO_SOURCE, or TO_DESTINATION)
- request (Request object representing the request being handled or null if the Elevator is idle)
You should also provide for this class the following:
A default constructor that sets
request
to null,elevatorState
to IDLE, andcurrentFloor
to 1.
Accessor and mutator methods for each variable. Final variables to represent IDLE, TO_SOURCE, and TO_DESTINATION.
这是我的:
public class Elevator {
private int currentFloor;
private int elevatorState;
private Elevator request;
public Elevator(){
currentFloor = 1;
elevatorState = ; //this is my problem
request = null;
}
}
我很困惑,因为它说要将 IDLE、TO_Source 和 TO_DESTINATION 声明为整数常量,但它们不是字符串吗?
任何澄清都会很有帮助。
基本上,要求的是3个int常量:
public static final int IDLE = 0;
public static final int TO_SOURCE = 1;
public static final int TO_DESTINATION = 2;
public Elevator(){
currentFloor = 1;
elevatorState = IDLE; //this is no longer my problem
request = null;
}
但是,如果您想成为花哨的先生并正确使用 OOP(可能无法教授的东西),您可以使用枚举!
public enum ElevatorState {
IDLE, TO_SOURCE, TO_DESTINATION
}
然后在你的 class:
public class Elevator {
private ElevatorState elevatorState;
private int currentFloor;
private Elevator request;
public Elevator() {
currentFloor = 1;
elevatorState = ElevatorState.IDLE; //this is no longer my problem
request = null;
}
}
我的Java有点生疏了,不过这个用起来应该没问题。
好吧,这里有一个可能的解决方案:
public class Elevator
{
private static final int IDLE = 0;
private static final int TO_SOURCE = 1;
private static final int TO_DESTINATION = 2;
private int currentFloor;
private int elevatorState;
private Elevator request;
public Elevator(){
currentFloor = 1;
elevatorState = IDLE; //this is my problem
request = null;
}
public int getCurrentFloor() {
return currentFloor;
}
public void setCurrentFloor(int currentFloor) {
this.currentFloor = currentFloor;
}
public int getElevatorState() {
return elevatorState;
}
public void setElevatorState(int elevatorState) {
if( elevatorState == IDLE ) setRequest( null );
this.elevatorState = elevatorState;
}
public Elevator getRequest() {
return request;
}
public void setRequest(Elevator request) {
this.request = request;
}
}