當我試圖用自己的方法創建自己的類時,該方法運行了兩次。我試着轉換部分代碼來發現故障,但該方法仍然運行兩次。爲什麼我的方法運行兩次?
這裏是類:
import java.util.Scanner;
public class TestRB
{
private String userInput;
private Scanner scan = new Scanner (System.in);
public TestRB()
{
run();
}
public void run()
{
System.out.println("Please input y or n.");
userInput = (scan.next()).toLowerCase();
while (!userInput.equals("y") && !userInput.equals("n"))
{
System.out.println("Invalid input, try again.");
System.out.println("Please type in \"y\" or \"n.\"");
userInput = (scan.next()).toLowerCase();
}
}
public boolean yOrN()
{
return (userInput == "y");
}
public String toString()
{
return userInput;
}
}
這裏是方法的對象。
public class TestRunRB
{
public static void main (String[] args)
{
TestRB test = new TestRB();
test.run();
if (test.yOrN())
System.out.println("Yes");
else
System.out.println("No");
}
}
無論是否輸入y或n,輸出始終爲否。
'的run()'被運行兩次,因爲你是兩次調用它。一旦進入構造函數,然後在構建之後進行一次。另外,你總是因爲這個而得到「否」:http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java – gla3dr
啊,謝謝!我現在明白了。所以我不需要'run();'在那裏?我已經做了一個例子,所以我只是把它放在那裏。 –