[英]Why do I get "0.0" returned to me every time in this situation?
這是我創建的“UserNumber”對象,用於存儲用戶給我的值:
public class UserNumber
{
public double userNumber;
public double getNumber()
{
return userNumber;
}
public void setNumber(double n)
{
userNumber = n;
}
public void printNumber()
{
System.out.println(userNumber);
}
}
這是我的類,它獲取輸入並(出於測試目的)將數字吐回:
public class GetInput
{
public void getInput()
{
Scanner input = new Scanner(System.in);
System.out.println("Please enter any number that could be stored in a double");
double number = input.nextDouble();
UserNumber setNum = new UserNumber();
setNum.setNumber(number);
UserNumber showAns = new UserNumber();
showAns.printNumber();
input.close();
}
}
每次我運行它時,我都會輸入諸如 10.6004 或 2.0 之類的東西……它總是給我“0.0”。
TIA。
因為您正在創建UserNumber
新實例,然后從新實例調用printNumber
,所以double userNumber
是0.0
為什么要創建第二個showAns
實例? 您需要使用為其設置了正確輸入編號的對象實例。
Scanner input = new Scanner(System.in);
System.out.println("Please enter any number that could be stored in a double");
double number = input.nextDouble();
UserNumber setNum = new UserNumber();
setNum.setNumber(number);
// UserNumber showAns = new UserNumber(); don't create another instance
setNum.printNumber(); // use the existing one where you set the double
input.close();
您總是得到0.0
因為它是double
的默認值。
您創建名為showAns
的UserNumber
新實例,並使用它進行打印。 但問題是用戶輸入的值存儲在setNum
對象中, showAns
為零。 使用setNum
打印結果。
還有一個提示, double UserNumber
應該是私有的,它破壞了封裝並且沒有任何理由將它公開,因為您在類中有公共 getter。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.