java - 动态创建对象。回归本源

标签 java

我正在编写一个简单的程序,用 JAVA 列出公司和员工的名称。

我想动态创建对象。下面是代码

public class EmployeeRecord {

/**
 * @param args
 */
String company, name;
int employee;
public String input;
public static BufferedReader br;
public int iE;
public static String numberOfCompanies;
String nameOfCompany;*/

public void company(String input) {
    // TODO Auto-generated method stub

    nameOfCompany = input;
}

public void employee(String employeeNumber) {
    // TODO Auto-generated method stub
    iE = Integer.parseInt(employeeNumber);
}*/

public static void main(String[] args) {
    // TODO Auto-generated method stub

    EmployeeRecord qw = new EmployeeRecord ();
    try {
        br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter number of companies: ");
        numberOfCompanies = br.readLine();
        int G = Integer.parseInt(numberOfCompanies);

        for (int i = 1; i <= G; i++) {

            System.out.println("Enter name of the company: ");
            String company = br.readLine();
            qw.company(company);
            System.out.println("Enter Number of employees: ");
            String employeeNumber = br.readLine();
            qw.employee(employeeNumber);

        }

        for (int i = 1; i <= G; i++) {

            qw.sortCompanySummary();
        }
    } catch (IOException io) {
        io.printStackTrace();
    }

}

public void companySummary() {

    System.out.println("Number of companies: " + numberOfCompanies);
    System.out.println("Name of company: "+nameOfCompany);
    System.out.println("Number of employees: "+iE);


}

}

我想要在这里做的是动态创建 EmployeeRecord 类的单独实例。例如

EmployeeRecord qw = new EmployeeRecord();
EmployeeRecord we = new EmployeeRecord();

最佳答案

首先,您需要将目标代码与控制代码分开。

其次,您需要某种集合或数组来保存对象。

以下是您的代码的外观:

public class UI{ // <---- this class will control the flow of your program
    public static void main(String[] args){
        private List<Company> company; // <---- this Collection object holds many Company objects
        ...
        for(int i=0;i<company.size();i++){
            Company c = new Company();
            c.setName(br.readLine());
            List<Employee> employee = new ArrayList<Employee>();
            ...
            for(int j=0;j<employee.size();j++){
                Employee e = new Employee();
                e.setName(br.readLine());
                ...
                employee.add(e);
            }
            c.setEmployee(employee);
            company.add(c);
         }
    }
}

public class Company{ // <---- this class will represent the companies
    private List<Employee> employee;
    private String name;
    public void setEmployee(List<Employee> employee){
        this.employee = employee;
    }
    ....
}

public class Employee{ // <----- this class will represent the employees
    private String name;
    private int empNo;
    public int getEmpNo(){
        return empNo;
    }
    ...
}

关于java - 动态创建对象。回归本源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8118499/

相关文章:

java - struts2 Action 映射不正确

java - Java内存模型中线程发散 Action 和外部 Action 的例子

java - importNode 抛出异常 org.w3c.dom.DOMException

java - SSLHandshakeException : Handshake failed SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER

java - onClick 将 ListView 数据移动到新屏幕

java - Spring Security Active Directory 忽略 PartialResultException

java - 将 TypedType[Set[MyObject]] 烫到 TypedType[MyObject]

java - 记住在客户端的独立应用程序上输入的值

java - Gradle : How to generate coverage report for Integration test using jacoco

java - 如何以这种方式在 Java 中获取输入?