我正在處理我的第一個作業(yè),一個類引用另一個類,恐怕我錯過了一些重要的東西,當我運行測試類時,字符串變量“direction”返回 null我試過更改訪問器、方法類型并重新編寫代碼,但它們似乎都不起作用public class Bug{ private int position; private boolean directionRight; private String direction; public String result; //setting starting position for bug public Bug() { position = 0; directionRight = true; } //move the bug one increment public int Move() { if (directionRight == true) { ++position; } else { --position; } return position; } //change direction of bug public Boolean Turn() { this.directionRight = !this.directionRight; return directionRight; } //returns direction of bug in form of a string public String Direction() { if (directionRight == true) { String direction = "right"; } else { String direction = "left"; } return direction; } //string with direction and position of the bug public String toString() { String result = "the direction is: " + direction + " the position is: " + position; return result; }}---public class Test{ public static void main(String[] args) { Bug Worm = new Bug(); //direction = right, position = 3 Worm.Move() ; Worm.Move() ; Worm.Move() ; Worm.Move() ; Worm.Move() ; Worm.Turn() ; Worm.Move() ; Worm.Move() ; Worm.Move() ; Worm.Turn() ; Worm.Move() ; System.out.println(Worm.toString()); }}我希望測試返回的方向是:正確的位置是:3相反,我得到的方向是:null 位置是:3
2 回答

米琪卡哇伊
TA貢獻1998條經(jīng)驗 獲得超6個贊
您不是在調用或設置direction. 這應該解決它。
public String Direction()
{
if (directionRight == true) {
direction = "right";
}
else {
direction = "left";
}
return direction;
}
public String toString()
{
String result = "the direction is: " + Direction() + " the position is: " + position;
return result;
}

湖上湖
TA貢獻2003條經(jīng)驗 獲得超2個贊
您永遠不會調用Direction()
將非空值分配給的方法direction
。但是您必須將String direction =
其刪除并替換為this.direction =
. 這樣,您引用的是成員變量,而不是您創(chuàng)建的本地化字符串。
添加回答
舉報
0/150
提交
取消