方法未定义类型,非常新的java

时间:2015-03-09 20:55:22

标签: java

我刚开始学习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个小时一直试图查看如何做到这一点,我只是不明白我需要做什么或我做错了什么,如果这只是一个语法错误或者如果我试图做一些不可能的事情。任何指向我正确方向的事情都值得赞赏。

2 个答案:

答案 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));