这是我的" 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。
答案 0 :(得分:2)
因为您要创建UserNumber
的新实例,然后从新实例调用printNumber
,所以double userNumber
为0.0
答案 1 :(得分: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
的默认值。
答案 2 :(得分:0)
您创建名为UserNumber
的{{1}}的新实例,并使用它进行打印。但问题是用户输入的值存储在showAns
对象中,setNum
为零。使用showAns
打印结果。
另外一个提示,setNum
应该是私有的,它打破了封装,没有任何理由让它公开,因为你在课堂上有公共吸气剂。