我對於採用CS1的Java相對較新。我們已經使用了Scanner
幾個星期,在典型情況下我比他們更舒適。我碰到了一個我無法弄清楚的地方,也沒有通過研究得到答案。掃描儀幫助 - 使用2個掃描儀方法和單個獲取方法
我有一個PayRoll計劃,我正在爲課堂建設。我們使用給出的三類變量:
employeeLastName
,hoursWorkded
,payRate
。
我做了3個獨立的setter方法以及一個設置所有三個方法的setter(使用所有四種方法的掃描儀)。
我沒有問題使用掃描儀獲取employeeLastName
在自己的setter,但是當我用獲取三個的方法來做,而不是掃描名稱,它只是打印提示並跳到hoursWorked
輸入。我不認爲我在那裏輸入的內容有任何錯誤。
在這一點上,我最大的問題是,如果甚至可以使用兩種不同的掃描器/輔助方法來執行setter,或者如果nextLine()
與其他掃描器實用程序結合使用時會變得很有趣。以下是與此相關的代碼的重要摘錄。請讓我知道是否有其他需要。預先感謝任何幫助!
private double requestDoubleFromUser(Scanner sc , String prompt)
{
double userInput;
System.out.print(prompt);
userInput = sc.nextDouble();
return userInput;
}
private String requestNameFromUser(Scanner sc , String prompt)
{
String nameInput;
System.out.print(prompt);
nameInput = sc.nextLine();
return nameInput;
/***** Test of Employee 2 *****/
displayEmployeeData("\n Default Pay Period Info for Employee 2", employeePayRoll2);
System.out.println("\n Please complete the employee's information to receive a period summary. ");
employeePayRoll2.setPayRoll(requestNameFromUser(sc, "\n Employee Name: ") ,
requestDoubleFromUser(sc, "\n Hours Worked: ") ,
requestDoubleFromUser(sc, " Rate of Pay: "));
displayEmployeeData("\n Pay Period Data for Employee 2", employeePayRoll2);
這是不起作用的部分。這裏是安裝程序:
public void setEmployeeLastName(String employeeLastName)
{
this.employeeLastName = employeeLastName;
}
public void setHoursWorked(double hoursWorked)
{
this.hoursWorked = hoursWorked;
}
public void setPayRate(double payRate)
{
this.payRate = payRate;
}
public void setPay(double hoursWorked , double payRate)
{
this.hoursWorked = hoursWorked;
this.payRate = payRate;
}
public void setPayRoll(String employeeLastName , double hoursWorked , double payRate)
{
this.employeeLastName = employeeLastName;
this.hoursWorked = hoursWorked;
this.payRate = payRate;
不幸的是,雖然我們有2個類(1個計算對象,另一個是測試器)。如果我被允許這樣做,但我們不應該這樣做。我們所教授的與我們的教授一起完成的主要方法是實例化測試對象。由於變量是私人的,但我無法直接使用其他班級的掃描儀更改其值。謝謝雖然這不起作用,但它在大多數情況下仍然是一個很好的解決方案。我很欣賞它的這一方面。 – 2013-03-04 04:13:37
那麼在測試儀中,是否給出了這些方法的參數或添加了掃描儀?我認爲這可能是一個問題時,通過掃描儀對象。嘗試在每個方法的主體中實例化掃描器。 – 2013-03-04 04:23:09
是的它被另一種方法實例化。我會嘗試翻轉它,看看它是否有所作爲。 – 2013-03-04 04:30:47