【发布时间】:2018-12-09 05:15:53
【问题描述】:
大家晚上好,
我必须创建一个使用两个类的程序。一个将包含用于输出的主方法,另一个类将用于静态方法调用主方法。我在这方面做得更好一些,但现在的问题是将一个静态方法中的返回变量传递给另一个静态方法以用于计算。现在我的措辞可能不正确,如果是这样,请告诉我。
到目前为止,我已经创建了四种方法中的两种。方法会输入总金额,第二种方法会使用 if,else 语句考虑佣金率是多少,第三种方法将使用前一种方法中确定的费率计算佣金金额,第四种方法会显示结果。
我遇到的问题是在第二个类的第一个静态方法中,它会显示问题,我可以输入金额。但是,输入不会转移到下一个方法,尽管我将它作为参数传递给第二个方法。我觉得一旦我理解了为什么它没有通过,我就不应该在编写程序的其余部分时遇到问题。主类称为 TapCoCommission。具有静态方法的类是 TapCoCommissionCalc(令人困惑,但老师希望这些方法以这种方式命名。)
我认为这与设置返回值的方式或参数的方式有关。任何澄清都非常感谢!
//Main class begins here
import java.util.Scanner;
import static java.lang.System.out;
public class TapCoCommission
{
public static final int COMMISSION_2 = 2;
public static final int COMMISSION_5 = 5;
public static void main(String[] args)
{
double inputTotalMonthlySales = 0;
double commRate = 0;
TapCoCommissionCalc.inputTotalSales(inputTotalMonthlySales);
TapCoCommissionCalc.setCommRate(inputTotalMonthlySales);
}
}
// Class with static methods begin here
import java.util.Scanner;
import static java.lang.System.out;
public class TapCoCommissionCalc
{
public static final double COMMISSION_2 = 0.02;
public static final double COMMISSION_5 = 0.05;
public static double inputTotalSales(double inputTotalMonthlySales)
{
Scanner keyboard = new Scanner(System.in);
out.println("Enter the total sales for this month.");
inputTotalMonthlySales = keyboard.nextDouble();
return inputTotalMonthlySales;
}
public static double setCommRate(double inputTotalMonthlySales)
{
double commRate = 0;
if (inputTotalMonthlySales <= 10000)
{
commRate = COMMISSION_2;
return commRate;
}
else if (inputTotalMonthlySales > 10000)
{
commRate = COMMISSION_5;
return commRate;
}
else
{
out.println("Please enter amount a positive numerical amount in dollars and cents.");
}
return commRate;
}
public static double calcCommAmount(double commRate, double inputTotalMonthlySales)
{
double commAmount = commRate * inputTotalMonthlySales;
return commAmount;
}
public static void displayCommResults()
{
}
}
【问题讨论】:
标签: java methods parameters static return