如何添加对象数组

时间:2015-10-15 13:18:47

标签: java oop

Manager类如何将一组Employee对象添加到manager类,并创建从Manager中添加和删除员工的方法

EmployeeTest.java

package com.example;
import com.example.domain.Employee;
import com.example.domain.Engineer;
import com.example.domain.Manager;
import com.example.domain.Admin;
import com.example.domain.Director;
import java.text.NumberFormat;

public class EmployeeTest {

public static void main(String[] args) {

    // Create the classes as per the practice
    Engineer eng = new Engineer(101, "Jane Smith", "012-34-5678", 120_345.27);

    Manager mgr = new Manager(207, "Barbara Johnson", "054-12-2367", 109_501.36, "US Marketing");

    Admin adm = new Admin(304, "Bill Munroe", "108-23-6509", 75_002.34);

    Director dir = new Director(12, "Susan Wheeler", "099-45-2340", 120_567.36, "Global Marketing", 1_000_000.00);

    // Print information about the objects you created
    printEmployee(eng);
    printEmployee(adm);
    printEmployee(mgr);
    printEmployee(mgr1);
    printEmployee(dir);

    System.out.println("\nTesting raiseSalary and setName on Manager:");
    mgr.setName ("Barbara Johnson-Smythe");
    mgr.raiseSalary(10_000.00);
    printEmployee(mgr);

}

public static void printEmployee(Employee emp) {
    System.out.println(); // Print a blank line as a separator
    // Print out the data in this Employee object
    System.out.println("Employee id:         " + emp.getEmpId());
    System.out.println("Employee name:       " + emp.getName());
    System.out.println("Employee Soc Sec #:  " + emp.getSsn());
    System.out.println("Employee salary:     " + NumberFormat.getCurrencyInstance().format((double) emp.getSalary()));
}

}

如何根据给定的问题进行编辑

Manager.java

package com.example.domain;

public class Manager extends Employee {
private String deptName;

public Manager(int empId, String name, String ssn, double salary, String deptName) {
    super(empId, name, ssn, salary);
    this.deptName = deptName;
}

public String getDeptName() {
    return deptName;
}

}

5 个答案:

答案 0 :(得分:1)

您可以按如下方式添加数组:

public class Manager extends Employee {
    private String deptName;
    private List<Employee> employees = new ArrayList<Employee>();

    public void addEmployee(Employee someone){
         employees.add(someone);
    }

然后在主代码中添加它们。

 manager.addEmployee(someone);

答案 1 :(得分:0)

以下是使用ArrayList而不是Array的示例。 ArrayLists适用于这样的情况,因为它们是动态的(您不必设置特定的大小),并且它们具有用于添加和删除的内置功能,而无需将所有现有员工上下移动。

package com.example.domain;

public class Manager extends Employee {
private String deptName;

ArrayList<Employee> employees = new ArrayList<Employee>();

public Manager(int empId, String name, String ssn, double salary, String deptName) {
super(empId, name, ssn, salary);
this.deptName = deptName;
}

public String getDeptName() {
return deptName;
}

public void add(Employee e) {
employees.add(e);

}
public void remove(Employee e) {
employees.remove(e);

}

答案 2 :(得分:0)

看起来你有经理班。您可以创建一个ArrayList来存储Employee类型,并使用下面的代码将其删除。或者从int中删除它,您可以使用ID,名称或其他变体。希望这对您有所帮助,或者可以让您朝着正确的方向前进。

`    public void removeEmployee(Employee emp, int position) {
        this.empArray.remove(position);
        System.out.println("Employee was deleted.");
    }`

   public void addEmployee(Employee emp) {
            this.empArray.add(emp);
            System.out.println("Employee was Added.");
    }

答案 3 :(得分:0)

使用ArrayList获取Employee对象列表。最好在将对象添加到列表之前进行空检查。

package com.test;

import java.util.ArrayList; import java.util.List;

公共类管理器扩展了Employee {

private String deptName;

private List<Employee> empList = new ArrayList<Employee>();

public Manager(int empId, String name, String ssn, double salary,
        String deptName) {
    super(empId, name, ssn, salary);
    this.deptName = deptName;
}

public String getDeptName() {
    return deptName;
}

public void addEmployee(Employee employee) {
    if (employee != null) {
        empList.add(employee);
    }
}

public boolean removeEmployee(Employee employee) {
    return empList.remove(employee);
}

}

答案 4 :(得分:0)

使用Employees的arrayList

<p:panel id="panelDG">
        <p:dataGrid id="pdatagrid1" layout="grid" value="#{ib.bloc.groups}" var="group" columns="#{ib.bloc.groupsSize}" rowIndexVar="status">
             <!-- other components -->
               <p:panel styleClass="panel-textarea">
                   <s:account>  
                         <p:editor id="editor1" value="#{ib.textArea1}" rendered="#{status == 0}" maxlength="4000" controls="bold italic underline strikethrough bullets outdent indent alignleft center alignright justify undo redo"  />
                         <p:editor id="editor2" value="#{ib.textArea2}" rendered="#{status == 1}" maxlength="4000" controls="bold italic underline strikethrough bullets outdent indent alignleft center alignright justify undo redo"  />
                         <p:editor id="editor3" value="#{ib.textArea3}" rendered="#{status == 2}" maxlength="4000" controls="bold italic underline strikethrough bullets outdent indent alignleft center alignright justify undo redo"  />
                         <h:panelGrid >
                                <p:commandButton value="Save" action="#{ib.modifyGroupText(group)}"  icon="ui-icon-disk" />
                         </h:panelGrid>
                   </s:account>
                   <s:guest>
                          <h:outputText value="#{group.textArea}" escape="false"></h:outputText>
                   </s:guest>
             </p:panel>
       </p:dataGrid>
</p:panel

.panel-textarea{
height: 500px; 
}