java - .class 编译时调用错误

标签 java

我在尝试编译文件以运行我的程序时收到预期的 .class 错误。我有一个 java 文件(主)调用另一个类名为 Sales 的 java 文件。

这是我的两个java文件的代码

import java.util.Scanner;

public class Sales
{
    double product1 = 2.98;
    double product2 = 4.50;
    double product3 = 9.98;
    double product4 = 4.49;
    double product5 = 6.87;
    double sale = 0;
    public void printHello()
    {
    Scanner input = new Scanner (System.in);
    System.out.print("Please enter a product number.");
    int userInput = input.nextInt();
        while(userInput != 0)
        {   
           if(userInput >= 1 && userInput <= 5)
            {
            switch(userInput)
            {
                 case 1: product1++;
                    sale += 2.98;

        System.out.print("How many were sold?");             
        userInput = input.nextInt();     
                     break;


            case 2: product2++;
                    sale += 4.50;


        System.out.print("How many were sold?");
        userInput = input.nextInt();        
                     break;


            case 3: product3++;
                    sale += 9.98;

        System.out.print("How many break; were sold?");
        userInput = input.nextInt();
                     break;




            case 4:product4++;
                    sale += 4.49;

        System.out.print("How many were sold?");
        userInput = input.nextInt(); 
                     break;



            case 5: product5++;
                    sale += 6.87;

        System.out.print("How many were sold?");
        userInput = input.nextInt(); 
                     break;


        }//end switch
        } //end if
        else if (userInput != 0)
        System.out.println("ERROR: Incorrect Product Number, Please Try Again");
        System.out.print("Please enter a Product Number");
        userInput = input.nextInt();
    }//end while 
} //end main
    public void printSales(double product1,double product2,double product3,double product4,double                    product5)
    {
    System.out.println();
    System.out.printf("Product 1: $%.2f\n", product1);
    System.out.printf("Product 2: $%.2f\n", product2);
    System.out.printf("Product 3: $%.2f\n", product3);
    System.out.printf("Product 4: $%.2f\n", product4);
    System.out.printf("Product 5: $%.2f\n", product5);
    System.out.printf("The total Cost is: %.2f\n", sale);
    } //end printSales
} //end class 

然后是我的主要内容:

public class SalesTest
{

public static void main(String[] args)
{
    Sales mySales = new Sales();    
    mySales.printHello();
    mySales.printSales();
}//end class    
}

我正在尝试使用公共(public)类 SalesTest 调用公共(public)类销售。当我尝试编译 SalesTest 时,我得到:

SalesTest.java:8:error: 类 Sales 中的方法 printSales 不能应用于给定类型; mySales.printSales();

需要:双倍,双倍,双倍,双倍,双倍 没有找到参数 原因:实际和形式参数列表的长度不同

我该如何解决这个问题?

最佳答案

这些不是同一种方法。

调用定义为的方法:

public void printSales(double product1, double product2, double product3, double product4, double product5)

您需要使用如下内容: mySales.printSales( 0, 0.0, 0d, 0f, Double.valueOf(0) );

(这些形式中的任何一种都可用于匹配 java 方法签名中的 double )

当你调用: mySales.printSales();

你最终尝试调用类似的东西: public void printSales()

你没有,所以你会得到一个错误。

这称为方法重载。它不仅是必须匹配的方法的名称,而且是签名。这包括参数。

关于java - .class 编译时调用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26644686/

相关文章:

java - 在我更改机器中的时区后,MYSQL 查询不工作

java - 为什么 "@Transactional(propagation = propagation.NEVER)"不起作用?

java - JRemove JButton 中的默认选择

c# - 如果索引高于c#中的字符串,什么类似于java的子字符串?

java - 在 android.os.AsyncTask$3.done(AsyncTask.java :300)

java - 调整 FlowLayout 面板的大小

java - ActiveMQ 日志中的条目太多

java - 参数为空时 Spring Cloud 假装行为

java - 我的 HQL 查询有什么问题?

c# - 使用 WebSocket 在 Java 和 C# 桌面应用程序之间进行通信?