在Java

时间:2017-03-11 03:14:24

标签: java class tostring

我正在尝试在名为Employee()的类中使用toString()。我有一个Employee类型的一维数组,它存储员工数据,包括员工ID,员工姓名,员工地址和员工雇用日期。我希望用户指定员工数量,然后输入用户想要的许多员工的相关数据。然后我想用输入的信息为用户打印结果。我一直得到一些无效的结果。我尝试使用If语句打印输出,如果它不等于null,但这不起作用。我知道输出有效,如果我打印出一个变量,如地址,但我想要打印出所有变量。感谢您的任何帮助。

public class Address
{
  public String address;

  public void getAddress(String a)
  {
      address = a;
  }

  public String toString()
  {
      return address;
  }

}
public class Name
{
  String name;

   public void getName(String n)
  {
      name = n;
  }

  public String toString()
  {
      return name;
  }

}
public class Date
{

    public String date;
    public String date1;


    public void getDate(int d, int m, int y)
    {

        date1 = (m + "/" + d + "/" + y);

    }    

    public String toString()
    {
        return date1;
    }

}

import java.util.Scanner;

public class Employee
{
    private int number;
    private Name name1 = new Name();
    private Address address1 = new Address();
    private Date hireDate = new Date();
    String number1;

    public void getDate1(int d, int m, int y)
    {
        hireDate.getDate(d, m, y);
    }

    public void getID(int x)
    {
        number = x;


    }

    public void setName( String n)
    {
        name1.getName(n);
    }

    public void getAddress(String a)
    {
         address1.address = a;
    }

    String z;

    public String toString()
    { 

        number1 = String.valueOf(number);
        String name2 = String.valueOf(name1);
        String address2 = String.valueOf(address1);
        String hireDate2 = String.valueOf(hireDate);

        z = number1 + " " + name2 + " " + address2 + " " + hireDate2;
        return z; 
    }


    public static void main(String args[])
    {
        Scanner input = new Scanner(System.in);

        System.out.println("Please enter amount of Employees: ");
        int input1 = input.nextInt();
        input.nextLine();

        for (int i = 0; i < input1; i++)
        {
            Employee [] employees = new Employee[4];

            System.out.println("Please enter the employee ID: ");
            int employeeID = input.nextInt();
            input.nextLine();
            employees[0] = new Employee();
            employees[0].getID(employeeID);

            System.out.println("Please enter the employees Name: ");
            String name2 = input.nextLine();
            employees[1] = new Employee();
            employees[1].setName(name2);

            System.out.println("Please enter the employee's address: ");
            String address2 = input.nextLine();
            employees[2] = new Employee();
            employees[2].getAddress(address2);

            System.out.println("please enter hire date, day (1-31),");
            System.out.print("month (1-12), year (1901 - 2019) in order on seperate");
            System.out.print(" lines: ");
            int input2 = input.nextInt();
            int input3 = input.nextInt();
            int input4 = input.nextInt();

            employees[3] = new Employee();
            employees[3].getDate1(input2, input3, input4);

            for (int p = 0; p < employees.length; p++)
            {
                System.out.println(employees[p]);
            }

        }

    }  
}

1 个答案:

答案 0 :(得分:1)

I have create classes which were needed. You can change them but you are creating employee object every time. I have corrected the code debug it and you will know what was wrong.

import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

class Name {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

class Address {
    private String address;

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

}

public class Employee {

    private int number;
    private Name name1 = new Name();
    private Address address1 = new Address();
    private Date hireDate = new Date();
    String number1;

    public void getDate1(int d, int m, int y) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(y, m, d);
        hireDate = calendar.getTime();
    }

    public void getID(int x) {
        number = x;

    }

    public void setName(String n) {
        name1.setName(n);
    }

    public void getAddress(String a) {
        address1.setAddress(a);
    }

    String z;

    public String toString() {

        number1 = String.valueOf(number);
        String name2 = name1.getName();
        String address2 = address1.getAddress();
        String hireDate2 = String.valueOf(hireDate);

        z = number1 + " " + name2 + " " + address2 + " " + hireDate2;
        return z;
    }

    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        System.out.println("Please enter amount of Employees: ");
        int input1 = input.nextInt();
        input.nextLine();

        Employee[] employees = new Employee[input1];
        for (int i = 0; i < input1; i++) {

            System.out.println("Please enter the employee ID: ");
            int employeeID = input.nextInt();
            input.nextLine();
            employees[i] = new Employee();
            employees[i].getID(employeeID);

            System.out.println("Please enter the employees Name: ");
            String name2 = input.nextLine();
            employees[i].setName(name2);

            System.out.println("Please enter the employee's address: ");
            String address2 = input.nextLine();
            employees[i].getAddress(address2);

            System.out.println("please enter hire date, day (1-31),");
            System.out.print("month (1-12), year (1901 - 2019) in order on seperate");
            System.out.print(" lines: ");
            int input2 = input.nextInt();
            int input3 = input.nextInt();
            int input4 = input.nextInt();

            employees[i].getDate1(input2, input3, input4);

            System.out.println(employees[i]);

        }

    }
}