簡體   English   中英

使用參數創建此構造函數類

[英]Creating this constructor class with parameters

我是JAVA的新手,我為這個不清楚的問題而苦苦掙扎。 我在禮貌地問是否有人可以與我討論或教我如何回答? 謝謝。

題:

Company類包含一個雇員數組,其構造函數將4個長度相同的數組作為參數。 第一個數組是String數組,它是員工的姓名; 第二個數組是一個字符串數組,分別是地址。 第三個數組是一個int數組,分別是員工編號; 第四個數組是一個double數組,分別是各自的薪水。

我知道如何做一個公共構造函數,但是我不確定Company類的構造函數。

您的幫助對我來說非常寶貴。 先感謝您。

感覺就像一個非常簡單的類結構。

public class Company {
Employee[] employees;

    public Company (String[] names, String[] addresses, int[] ids, double[] salaries) {
        employees = new Employee[names.length];
        for (int i = 0; i < employee.length; i++) {
            employees[i] = new Employee (names[i], addresses[i], ids[i], salaries[i]);
        }
    }

    static class Employee {
    String name;
    String address;
    int id;
    double salary;

        Employee (String name, String address, int id, double salary) {
            this.name = name;
            this.address = address;
            this.id = id;
            this.salary = salary;
        }
    }
}

如果這是學校作業,並且您正在使用stackoverflow作弊,請刪除問題。

public Company(String[] names, String[] addresses, int[] employeeNumbers, double[] salaries) {

}

更好的設計是

public Company(Employee[] employees) {

}

並有一個員工班

public class Employee {

    private String name;
    private String address;
    private int employeeNumber;
    private double salary; // you may not want to use this in production

    public Employee(String name, String address, int employeeNumber, double salary) {

    }
    // constructors, getters and setters, etc
}

根據@Kayaman的評論,您似乎已經有一個employee類,但是由於某些原因,您不想使用第一個構造一個由一組雇員而不是4個雇員組成的構造函數。 您想要將第一個構造函數與4個數組參數一起使用,並從這些參數構造數組對象。 這實際上是不好的編程。 它使您的代碼看起來很臟。

如果這是學校的任務,而您被要求那樣做,我想這名老師可能只是想讓您從中學到一些東西。 但是這樣的代碼不應該在生產中編寫。

無論如何,這是您可能正在尋找的解決方案

public class Company {

    private Employee[] employees;

    public Company(String[] names, String[] addresses, int[] employeeNumbers, double[] salaries) {

        employees = new Employees[names.length]; // assuming all arrays are of the same length

        for (int i = 0;i < employees.length;i++) {
            employees[i] = new Employee(names[i], addresses[i], employeeNumbers[i], salaries[i]);
        }
    }
}
import java.util.ArrayList;
import java.util.Collections;    

public Class Company
{
  ArrayList<Employee> employees = new ArrayList<Employee>();

  public Company(Employee[] newEmployees)
  {
    employees.addAll(newEmployees);
  }
}

public Class Employee
{
  public String Name;
  public String Address;
  public Int Id;
  public Double Salary;

  public Employee(string name, string address, int id, double salary)
  {
     this.Name = name;
     this.Address = address;
     this.Salary = salary;
     this.Id = id;
  }
}

創建新公司:

Employee[] e = { 
  new Employee("Bob", "Bobs address", 1, 50000), 
  new Employee("Jane", "Janes address", 3, 85000) 
}

Company c = new Company(e);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM