1

我无法将包含名称和数字的数组中的元素传递给另一个将进行计算的类。这就是我的课程。

public class Employee {
    private int sales;
    private String name;

    public Employee(String name, int sales){
        this.name = name;
        this.sales = sales;
    }
    public String getName(){
        return this.name;
    }
    public int getSales(){
        return this.sales;
    }
}

该类用于帮助存储数组的名称和销售额。这是其单独类中的数组。

import java.util.Scanner;

public class EmployeeArray {

    public static int employee() {

        Scanner input = new Scanner(System.in);

        int numEmp;
        System.out.println("Enter how may employees to be compared: ");
        numEmp = input.nextInt();
        input.nextLine();
        Employee[] employees = new Employee[numEmp];

        for (int i = 0; i < numEmp; i++) {
            System.out.print("Enter your name: ");
            String employeeName = input.nextLine();
            System.out.println();
            System.out.print("Enter your annual sales: ");
            int employeeSales = input.nextInt();
            input.nextLine();
            System.out.println();

            Employee employee = new Employee(employeeName, employeeSales);
            employees[i] = employee;
        }
        Employee maxSeller = employees[0];
        for (int i = 0; i < employees.length; i++) {

            System.out.println("Employee Name: " + employees[i].getName());
            System.out.println("Total sales: $" + employees[i].getSales());
            System.out.println();

            if (maxSeller.getSales() < employees[i].getSales()) {
                maxSeller = employees[i];
            }
        } 
        System.out.println();
        System.out.println("Top Seller is: " + maxSeller.getName());
        System.out.println("Top Sales are: $" + maxSeller.getSales());

        return maxSeller.getSales();

    }
}

该数组保存这些值并返回一个名为 maxSeller 的畅销商品,并获取它们的名称和销售额。现在我遇到的问题是,在一个单独的类中,我需要获取存储在这个数组中的值来进行一些计算。我必须获得 maxSeller 的销售额并将它们与数组中其他卖家的销售额进行比较。在那里,我试图显示其他人需要多少销售才能达到或超过最畅销的产品。这就是我遇到的问题。我不知道如何将这个数组中的值传递给下一个类,所以我可以进行计算。有什么想法吗?

4

2 回答 2

2

除了在静态方法中创建数组之外,您还可以使其成为其中的成员,EmployeeArray然后可以在静态上下文中重用数组(不推荐)或创建不同EmployeeArray的 s 来保存不同的员工数组,这在 OOP 中更有意义。粗略的草图:

import java.util.Scanner;

public class EmployeeArray {
private Employee[] employees;

public Employee[] getEmployees() {
    return employees;
}

public void setUpArray() {
    Scanner input = new Scanner(System.in);

    int numEmp;
    System.out.println("Enter how may employees to be compared: ");
    numEmp = input.nextInt();
    input.nextLine();
    employees = new Employee[numEmp];

    for (int i = 0; i < numEmp; i++) {
        System.out.print("Enter your name: ");
        String employeeName = input.nextLine();
        System.out.println();
        System.out.print("Enter your annual sales: ");
        int employeeSales = input.nextInt();
        input.nextLine();
        System.out.println();

        Employee employee = new Employee(employeeName, employeeSales);
        employees[i] = employee;
    }
}

public int getMaxSellerEmployeeSales() {
    Employee maxSeller = employees[0];
    for (int i = 0; i < employees.length; i++) {

        System.out.println("Employee Name: " + employees[i].getName());
        System.out.println("Total sales: $" + employees[i].getSales());
        System.out.println();

        if (maxSeller.getSales() < employees[i].getSales()) {
            maxSeller = employees[i];
        }
    }
    System.out.println();
    System.out.println("Top Seller is: " + maxSeller.getName());
    System.out.println("Top Sales are: $" + maxSeller.getSales());
    return maxSeller.getSales();
}

public static void main(String[] args) {
    EmployeeArray google = new EmployeeArray();
    google.setUpArray();

    EmployeeArray ms = new EmployeeArray();
    ms.setUpArray();

    EmployeeArrayCalculatorAndManipulator eGoogle = new EmployeeArrayCalculatorAndManipulator();
    EmployeeArrayCalculatorAndManipulator eMS = new EmployeeArrayCalculatorAndManipulator();
    eGoogle.doSomethingWithArray(google.getEmployees());
    eMS.doSomethingWithArray(ms.getEmployees());
}

}
于 2013-06-21T20:33:43.233 回答
0

它对我有用:-

包员工包;

公共类员工{

private int sales;
private String name;

public Employee(String employeeName, int employeeSales){
    this.name = employeeName;
    this.sales = employeeSales;


}
public String getName(){
    return this.name;
}
public int getSales(){
    return this.sales;
}

}


包员工包;

导入 java.util.Scanner;公共类 EmployeeArray {

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    int numEmp;

    System.out.println("Enter how may employees to be compared: ");
    numEmp = input.nextInt();
    input.nextLine();
    Employee[] employees = new Employee[numEmp];

    for (int i = 0; i < numEmp; i++) {
        System.out.print("Enter your name: ");
        String employeeName = input.nextLine();
        System.out.println();
        System.out.print("Enter your annual sales: ");
        int employeeSales = input.nextInt();
        input.nextLine();
        System.out.println();

 employees[i] = new Employee(employeeName , employeeSales); //calling constructor

    }
    Employee maxSeller = employees[0];
    for (int i = 0; i < employees.length; i++) {

        System.out.println("Employee Name: " + employees[i].getName());
        System.out.println("Total sales: $" + employees[i].getSales());
        System.out.println();

        if (maxSeller.getSales() < employees[i].getSales()) {
            maxSeller = employees[i];
        }
    } 
    System.out.println();
    System.out.println("Top Seller is: " + maxSeller.getName());
    System.out.println("Top Sales are: $" + maxSeller.getSales());


}

}

于 2016-11-24T11:52:20.307 回答