我刚开始学习Java,对于我的一项任务,我需要从这个班级运行变量销售:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Commission_main_module_improved {
// Local variables
//Declare Real sales, commissionRate, commission, advancedPay
static float sales;
static float commissionRate;
static float commission;
static float advancedPay;
{
sales = 0.12f;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// Get the amount of sales.
//sales = getReal("Enter the salesperson's monthly sales")
System.out.print("Enter the salesperson's monthly sales");
sales = Float.parseFloat(br.readLine());
// Get the amount of advanced pay.
//advancedPay = getReal("Enter the amount of advanced pay, or \n 0 if no advanced pay.")
System.out.print("Enter the amount of advanced pay, or \n 0 if no advanced pay.");
advancedPay = Float.parseFloat(br.readLine());
// Determine the commission rate.
//commissionRate h8= determineCommissionRate(sales)
Float commissionRate = DetermineCommssionRate(sales);
//Display the commission rate
//Display "Commission rate: ", 100 * commissionRate, "%"
commission = commissionRate * sales;
}
}
通过这个课程
/**
*Nethods In the this class calculate commision rate
*/
public class DetermineCommssionRate {
public static float determineCommissionRate(float sales) {
float cr;
if (sales < 10000f) {
cr = 0.10f;
}
else if (sales < 15000f) {
cr = 0.12f;
}
else if (sales < 18000) {
cr = 0.14f;
}
else {
cr = 0.18f;
}
return cr;
}
public static void main(String[] args) {
System.out.println(determineCommissionRate(17000f));
}
}
为了计算佣金率,但是当我尝试运行代码时,我收到了错误,
对于类型Commission_main_module_improved
,未定义DetermineCommssionRate(float)方法
在第一堂课的那一行,
Float commissionRate = DetermineCommssionRate(sales);
我们在课堂上这样做但我还没能在家里复制它。我过去4个小时一直试图查看如何做到这一点,我只是不明白我需要做什么或我做错了什么,如果这只是一个语法错误或者如果我试图做一些不可能的事情。任何指向我正确方向的事情都值得赞赏。
答案 0 :(得分:0)
您需要致电:
Float commissionRate = DetermineCommssionRate.determineCommissionRate(sales);
而不是
Float commissionRate = DetermineCommssionRate(sales);
因为你必须调用Class.Method(参数)而不仅仅是Class。为了将来参考,您应该使用与您的班级不同(明显)的名称来定义您的班级。否则它应该可以正常工作。
另外,你打电话
System.out.println(determineCommissionRate(17000f));
这是实际方法的拼写错误
System.out.println(determineCommssionRate(17000f));
你把determineCommissionRate作为方法名称,但它实际上没有'i'在commision中。
希望这有帮助。
答案 1 :(得分:-2)
要访问静态函数,请使用类名作为方法的前缀,例如
DetermineCommssionRate.determineCommissionRate(1.5f));