【问题标题】:How to implement overload methods to identify variables correctly如何实现重载方法以正确识别变量
【发布时间】:2014-03-16 05:47:15
【问题描述】:

我已经连续工作了大约 15 个小时,但我的想法已经用完了,我迫切需要一些帮助。我看过教程和书籍,但我无法弄清楚。

我的主要问题是我无法理解/计算如何使用重载方法在 int 或 double 之间进行选择。为了解释,我试图让我的程序使用用户输入将值转换为 int 到 double (反之亦然)并存储结果以显示正确答案。

我试图获取每种可能性的变化,而不是将其保留为 double。

我尝试这样做的原因如下(我知道代码不需要它,但分配要求我这样做,但我一直在死胡同):


这就是重载的来源:一些应用程序会将数量定义为 int,而其他应用程序会将其定义为 double。因此,您需要编写此方法的两个重载版本:

只获取一次用户输入。如果将借出金额的输入值转换为 int 并将其存储在 int 变量中,则可以将此 int 的值转换为 double 并将此转换的结果存储在 double 变量中。使用强制转换运算符将 int 值转换为 double 或将 double 值转换为 int。

【问题讨论】:

  • amountLoaned 变量被声明为双精度。来自用户的输入被解析为双精度。 amountLoaned 值被传递给 interestcalc 方法,该方法需要一个双精度值。 int 在哪里(以及为什么会)进入这个场景?
  • 方法重载意味着在 smae 方法名称上有不同的输入参数。我在您的代码中没有看到任何要求。
  • 我的作业要求我“一些应用程序会将数量定义为 int,而其他应用程序会将其定义为 double。因此,您需要编写此方法的两个重载版本。1/一个年利率为双倍,年数为整数,贷款金额为整数。
  • 2.另一个将年利率作为双倍,年数作为整数,贷款金额作为双倍。
  • 抱歉忘了包含让我编辑问题以便澄清

标签: java methods int double overloading


【解决方案1】:

为什么会使情况复杂化? 一个简单的解决方案: - 以双倍接收输入 - 检查数字是否为整数。如果是,则将其转换为整数,然后调用适当的方法。快速搜索一下:

How to test if a double is an integer

Convert double to Int, rounded down

【讨论】:

  • 因为我别无选择...... =(但谢谢你让我看看这是否有效
  • 我放弃了,我就这么干。谢谢你的帮助!!
【解决方案2】:

如果您需要编写两个重载版本的 interestcalc 函数,只需使用以下签名创建两个单独的方法:

public static void interestcalc (int aLoan, double interes, int numYears)
{
    // perform calculations here
}


public static void interestcalc (double aLoan, double interes, int numYears)
{
    // perform calculations here
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 2016-08-15
    相关资源
    最近更新 更多