Creating objects in a loop and using other objects as class constructors
我对 Java 很陌生。我必须创建一个模拟员工的程序。该员工有员工编号、名字和姓氏、由街道、城市和state组成的地址,以及由月、年和日组成的雇用日期。这是我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | import javax.swing.JOptionPane; public class AssignmentTen { public static void main (String[] args) { System.out.println(); int num = Integer.parseInt(args[0]); int eNumber; String input2; String input3; String input4; String input5; String input6; int input7; int input8; int input9; int input10; Employee[] employee = new Employee[num] for (int i = 0; i < num, i++) employee[i] = new Employee() input2 = getString ("Enter Employee First Name:"); input3 = getString ("Enter Employee Last Name:"); input4 = getString ("Enter Employee Street:"); input5 = getString ("Enter Employee City:"); input6 = getString ("Enter Employee State (Initials):"); input7 = getInt ("Enter Employee Zip Code (5 Digits):"); input8 = getInt ("Enter Employee Hire Month (MM):"); input9 = getInt ("Enter Employee Hire Day (DD):"); input10 = getInt ("Enter Employee Hire Year(YYYY):"); eNumber = getInt ("Enter Employee Number:"); System.out.println("#" + eNumber); Name n1 = new Name(input2, input3); System.out.println(n1.firstName +"" + n1.lastName); Address a1 = new Address (input4, input5, input6, input7); System.out.println(a1.eStreet +"" + a1.eCity +"" + a1.eState +"" + a1.eZipCode); Date d1 = new Date (input8, input9, input10); System.out.println("Hire Date:" + d1.month +"/" + d1.day +"/" + d1.year); } public static int getInt(String paramString) { String str = JOptionPane.showInputDialog(paramString); return Integer.parseInt(str); } public static String getString(String paramString) { String str = JOptionPane.showInputDialog(paramString); return str; } } class Employee { } class Name { String firstName; String lastName; Name(String first, String last) { firstName = first; lastName = last; } } class Address { String eStreet; String eCity; String eState; int eZipCode; Address(String street, String city, String state, int zipCode) { eStreet = street; eCity = city; eState = state; eZipCode = zipCode; } } class Date { int month; int day; int year; Date(int eMonth, int eDay, int eYear) { month = eMonth; day = eDay; year = eYear; } } |
如何让 Employee 类使用 Name、Address 和 Date 类作为构造函数来将所有员工信息存储在一个对象中?此外,我的程序中需要有一个单独的 Employee、Name、Address 和 Date 类。另外,如何创建一个 for 循环来创建数量等于 num 整数(从命令行输入)的员工对象,以便每个对象都有自己的名称、日期和地址?
我知道这段代码可能不会编译,我只需要完成它。
Employee 有一个地址、一个姓名和一个雇用日期,因此您必须声明类型为 Address、Name 和 Date 的实例变量。然后您可以编写一个构造函数,将 Address、Name 和 Date 作为构造函数参数并将它们分配给员工的实例变量
1 2 3 4 5 6 7 8 9 10 |
for 循环
1 2 3 4 5 6 7 8 | Employee[] employees = new Employee[noOfEmployees] for(int i = 0; i < noOfEmployees; i++){ Name name = new Name(String first, String last); Address address = new Address(String street, String city, String state, int zipCode); Date hireDate = new Date(int eMonth, int eDay, int eYear); employees[i] = new Employee(name,address,hireDate); } |
其中 noOfEmployees 是您要创建的员工数量。
并且您可以使用 java\\ 的内置日期类 java.util.Date 作为hireDate.
您需要为您的
(在下面的代码中,您还必须为每个字段创建访问器方法)
1 2 3 4 5 6 7 8 9 10 11 12 13 |