首页 > 解决方案 > 我需要帮助来运行我的 Java 代码以让用户输入以下详细信息

问题描述

我试图运行 Sales 2 文件,但它不起作用。请帮我解决它。谢谢你。

销售档案

public class Sales {
    private int transactionNo;
    private int salespersonNo;
    private String name;
    private int salesAmount;
    
    //constructor
    Sales (int trans, int sP, String name1, int sA){
        transactionNo = trans;
        salespersonNo = sP;
        name = name1;
        salesAmount = sA; 
    }
    
    void displayInformation(){
        System.out.println(transactionNo + "" + salespersonNo + "" + name + "" + salesAmount);
    } 
    
    //setter method
    public void setTransactionNo(int trans1){
        transactionNo = trans1;
    }
    
    public void setSalespersonNo(int salesP1){
        salespersonNo = salesP1;
    }
    
    public void setName(String name1){
        name = name1;
    }
    
    public void setSalesAmount(int salesA1){
        salesAmount = salesA1;
    }
    
    //getter method
    public int getTransactionNo(){
        return transactionNo;
    }
    
    public int getSalespersonNo(){
        return salespersonNo;
    }
    
    public String getName(){
        return name;
    }
    
    public int getSalesAmount(){
        return salesAmount;
    }
}

Sales2 文件 - 这是运行代码的文件,让用户输入他们的详细信息以计算和生成每个销售人员的佣金报告。

import java.util.Scanner;

public class Sales2 {

    public static void main(String args[]) {
    Scanner sc = new Scanner(System.in);
    System.out.println("SALES COMMISSON");
    System.out.println("TNO#    SALESNO#    NAME            AMOUNT  COMM RATE   COMMISSION ");
    Sales sales1 = new Sales();
    sales1.setTransactionNo(sc.nextInt());
    sales1.setSalespersonNo(sc.nextInt());
    sales1.setName(sc.nextLine());
    sales1.setSalesAmount(sc.nextInt());
    
    sales1.displayInformation();
    }    
}

标签: java

解决方案


您创建了一个带有 4 个参数的构造函数:

Sales (int trans, int sP, String name1, int sA) { //...

但是您正在调用无参数构造函数:

Sales sales1 = new Sales();

任何一个:

  1. 使用虚拟值调用 4 参数构造函数:

     Sales sales1 = new Sales(-1, -1, null, -1);
    
  2. 或者添加一个无参数构造函数:

     Sales () {
     }
    
  3. 或者将所有数据输入移动到构造函数中:

     Sales sales1 =
         new Sales(sc.nextInt(), sc.nextInt(), 
                   sc.nextLine(), sc.nextInt());
     //sales1.setTransactionNo(sc.nextInt());
     //sales1.setSalespersonNo(sc.nextInt());
     //sales1.setName(sc.nextLine());
     //sales1.setSalesAmount(sc.nextInt());
    

只是我猜测您可能会遇到什么错误。


推荐阅读