当前位置: 首页 > 知识库问答 >
问题:

将main外部方法的结果调用到main方法的变量中

向杜吟
2023-03-14

我的作业是为一家正在补货的珠宝店计算税金和附加费,我遇到了一点小麻烦。我三次使用一种叫做calcExtraTax的方法来计算劳动率以及州税和联邦税。然后,我需要获取该方法的每个实例的结果,并将值传递给我的main方法中的适当变量。这是我的代码现在的样子(显然不完整):

import java.text.DecimalFormat;
import java.util.Scanner;
import javax.swing.JOptionPane;

public static void main(String[] args)
{

double stateRate = 0.1;
double luxuryRate = 0.2;
double laborRate = 0.05;
double extraCharge;
int numOrdered;
double diamondCost;
double settingCost;
double baseCost;
double totalCost;
double laborCost;
double stateTax;
double luxuryTax;
double finalAmountDue;

    Scanner keyInput = new Scanner(System.in);

    System.out.println("What is the cost of the diamond?");
    diamondCost = keyInput.nextDouble();
    System.out.println("What is the cost of the setting?");
    settingCost = keyInput.nextDouble();
    System.out.println("How many rings are you ordering?");
    numOrdered = keyInput.nextInt();

    baseCost = diamondCost + settingCost;
    calcExtraCost(baseCost, laborRate);
    laborCost = extraCharge;
    calcExtraCost(baseCost, stateRate);
    stateTax = extraCharge;
    calcExtraCost(baseCost, luxuryRate);
    luxuryTax = extraCharge;
    totalCost = baseCost + laborCost + stateTax + luxuryTax;
    finalAmountDue = numOrdered*totalCost;
    JOptionPane.showMessageDialog(null, "The final amount due is = " + finalAmountDue);
}
public static void calcExtraCost(double diamond, double rate)
{
    double extraCharge = diamond*rate;
    ???????????
}

我想弄清楚的是,我还需要在我的第二种方法中添加什么,以便每次都能够根据公式中使用的税率变量将结果传递到不同的税收成本变量中。

共有2个答案

贺卜霸
2023-03-14

通过将助手方法的签名从< code>void更改为< code>double并添加< code>return语句,可以从助手方法返回< code>diamond*rate的值:

public static double calcExtraCost(double diamond, double rate)
{
    return diamond * rate;
}

现在,您可以将调用的结果赋给main方法中的变量:

laborCost = calcExtraCost(baseCost, laborRate);
牛经赋
2023-03-14

除了将返回类型更改为双精度并返回计算值之外,您不需要对 calcExtraCost 执行任何特殊操作。例如

public static double calcExtraCost(double diamond, double rate)
{
    double extraCharge = diamond*rate;
    double tax = //some calculations
    return tax
}

所以这个方法会返回计算出的值。

在您的main方法中,您需要将该值存储为您想要的适当的double值。例如,如果您想要计算< code>luxuryTax,那么您可以执行以下操作:

luxuryTax = calcExtraCost(baseCost, luxuryRate);

还有一些建议,不要让你的方法< code>static,而是让它成为一个< code>non-static方法,创建一个定义你的方法的类的对象,并在该对象上调用该方法。

例如,如果定义方法的类名为Tax,则创建一个Tax对象:

Tax tax = new Tax();

并对该对象调用calcExtra成本

tax.calcExtraCost();

这样就移除了方法的静态部分。所以你的方法签名变成这样:

public double calcExtraCost(double diamond, double rate)
 类似资料:
  • 我在这个上面有点卡住了。我正在编写一个包含两个类的java程序,然后是一个测试程序来测试类中的方法。我被困在主方法中调用下面的两个方法上。所有的类文件(测试程序类和另外两个类)都在编译,IDE没有给我任何错误消息,计算只是没有发生…… --主要方法代码: -账户类别代码: 注意:平衡设置器正在工作,因为它在测试程序的前面被调用... 非常感谢任何帮助!!! 账户类别的完整代码: 主要方法完整代码:

  • 我试图创建一个简单的程序来输出由用户输入的星星的数量。我正在尝试学习如何使用一个以上的方法来做到这一点,这是我的代码 我面临的问题是,在循环方法中,我不能使用变量n,有没有办法在main方法中使用变量,在另一个方法中使用变量?泰 -平古

  • 问题内容: 在阅读有关Java的书时,我看到了一个这样编写的示例。我想知道我可以在main方法之外声明变量吗?在main方法外部和内部声明变量之间有什么区别?“静态”在这里的作用是什么?请有人给我解释一下吗?我是Java新手。 最好的祝福。 问题答案: 1)内部与外部: 如果 在 方法 内部 声明对象,则该对象仅在该方法中可见。基本上,如果在其周围放置方括号,则只能从这些方括号内看到/访问它。 如

  • 问题内容: 尝试在Parent类中创建1个接口和2个具体类。这将使封闭类成为内部类。 现在,我真的不确定如何在静态main()方法中创建C类的对象并调用C类的call()方法。现在我遇到了问题: 问题答案: 这里的内部类不是静态的,因此您需要创建一个外部类的实例,然后调用new, 但是在这种情况下,您可以将内部类设为静态, 那就可以使用了

  • 问题内容: 只是玩弄Java反射,我想我大部分时间都掌握了它。我从这个问题/答案中了解到,在大多数情况下,我仅限于静态变量。如果我有该类的实例,则可以访问非静态变量,这确实有意义,我得到了很多。 说我有以下两节课: 我知道如何访问,这不是问题。我的理解是,我能得到的同样的方式(即)。从其他研究(javadocs,trails等)中,我收集到需要一个实例才能获得的值。 所以我的问题; 由于是静态的,

  • 问题内容: 我有 但后来当我打电话从通过运行以下命令在命令行上,JAVA抱怨说,你不能调用从静态功能的方法。 所以我的问题是:如何从主方法调用方法,如果不可能,使用java命令从命令行运行程序后,有哪些替代策略可以调用方法。 问题答案: 您只能针对类的实例调用类似的实例方法(顺便说一下,这是一个非法的方法名称): 另外,如果对您的设计有效,则也使它成为静态。