在类构造函数中存储数据时遇到问题,学习OOP

时间:2013-01-08 05:44:44

标签: java oop

这是我应该完成的任务:

编写一个为员工建模的程序。员工有员工编号,姓名,地址和雇用日期。名称由名字和姓氏组成。地址包括街道,城市,州(2个字符)和5位邮政编码。日期由整数月,日和年组成。

在解决方案中使用Employee类,Name类,Address类和Date类。

您的程序应提示用户输入多名员工的数据,然后显示该数据。存储数据的员工数量应从命令行输入。

我很困惑的是如何使用所有不同的类来存储信息。

这是我的代码(对不起,这篇文章太长了)

    import java.util.Scanner;

    public class unitTenDemo
    {
public static void main ( String [ ] args )
{
    Scanner input = new Scanner ( System.in );
    System.out.print ( "Enter the number of employees" );
    System.out.println ( "\t" );
    int employees = input.nextInt ( );

    for (  int count = 0; count < employees; count ++ )
    {
        System.out.print ( "Enter the employees' numbers" );

        int employeeNumber = input.nextInt ( );
        System.out.println ( );
        System.out.println ( "The number is " +employeeNumber );    
        System.out.println ( );
    }
        }
    }

//这是实际的输出代码

//这是我坚持的构造函数

    public class unitTen
{
int employeeNumber;

public int Employee ( int empNum )
{
    employeeNumber = empNum;
}

string employeeName;

public void Name ( string empName )
{
    employeeName = empName;
}

string street;
string city;
string state;
int zipCode;



}

3 个答案:

答案 0 :(得分:1)

不要将所有内容都放入构造函数中。编写构造函数来构建未完全初始化的对象是可以的。您可以按如下方式组织您的计划:

  1. 找出将有多少Employee个对象(用户输入)
  2. 创建一个Employee个适当长度的对象数组
  3. 对于数组的每个元素,为该元素分配一个新的Employee
  4. 对于数组的每个元素,提示用户输入正确初始化Employee所需的每个数据。
  5. 最后一步(一次只处理一个Employee)将分解为很多细节,因为每个Employee对象都有很多信息。只需系统地浏览所有元素。

答案 1 :(得分:0)

这段代码根本不会编译。 Yopu已将int声明为返回类型,并且不从该方法返回任何内容。

 public int Employee ( int empNum )
 {
      employeeNumber = empNum;
 }

答案 2 :(得分:0)

除了@Ted指出的答案之外,你应该相应地修改你的Employee类,然后根据需要调用构造函数。

public class Employee // you should change the name of class to Employee
{
int employeeNumber;

public Employee(){}; // default constructor to create empty Employee objects
public Employee ( int empNum ) // constructor cannot have any return type
{
    employeeNumber = empNum;
}

string employeeName;

public Employee( string empName, int empNum ) // you can create multiple constructors with different parameters.
{
    employeeName = empName;
    employeeNumber = empNum;
}

string street;
string city;
string state;
int zipCode;

// you can create getters and setters for these fields

}