在Java中使用toString()方法

在Java中使用toString()方法,java,class,tostring,Java,Class,Tostring,我试图在一个名为Employee()的类中使用toString()。我有一个类型为Employee的1D数组,它存储员工数据,包括员工ID、员工姓名、员工地址和员工雇用日期。我希望用户指定员工数量,然后输入用户想要多少员工的相关数据。然后我想用输入的信息为用户打印结果。我一直得到一些空的结果。我试着使用一个If语句,如果它不等于null,就打印输出,但这不起作用。我知道如果我打印出一个变量,比如address,那么输出是有效的,但是我希望打印出所有变量。谢谢你的帮助 public class A

我试图在一个名为Employee()的类中使用toString()。我有一个类型为Employee的1D数组,它存储员工数据,包括员工ID、员工姓名、员工地址和员工雇用日期。我希望用户指定员工数量,然后输入用户想要多少员工的相关数据。然后我想用输入的信息为用户打印结果。我一直得到一些空的结果。我试着使用一个If语句,如果它不等于null,就打印输出,但这不起作用。我知道如果我打印出一个变量,比如address,那么输出是有效的,但是我希望打印出所有变量。谢谢你的帮助

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]);
            }

        }

    }  
}
公共类地址
{
公共字符串地址;
公共无效getAddress(字符串a)
{
地址=a;
}
公共字符串toString()
{
回信地址;
}
}
公共类名
{
字符串名;
public void getName(字符串n)
{
name=n;
}
公共字符串toString()
{
返回名称;
}
}
公课日期
{
公共字符串日期;
公共字符串date1;
公共无效获取日期(整数d、整数m、整数y)
{
日期1=(m+“/”+d+“/”+y);
}    
公共字符串toString()
{
返回日期1;
}
}
导入java.util.Scanner;
公营雇员
{
私有整数;
私有名称name1=新名称();
专用地址address1=新地址();
私人雇佣日期=新日期();
字符串编号1;
public void getDate1(int d,int m,int y)
{
雇佣日期(d,m,y);
}
公共void getID(int x)
{
数字=x;
}
公共void集合名(字符串n)
{
name1.getName(n);
}
公共无效getAddress(字符串a)
{
地址1.地址=a;
}
字符串z;
公共字符串toString()
{ 
number1=字符串。valueOf(number);
String name2=String.valueOf(name1);
String address2=String.valueOf(address1);
String hireDate2=String.valueOf(hireDate);
z=number1+“”+name2+“”+address2+“”+hireDate2;
返回z;
}
公共静态void main(字符串参数[])
{
扫描仪输入=新扫描仪(System.in);
System.out.println(“请输入员工人数:”);
int input1=input.nextInt();
input.nextLine();
对于(int i=0;i
我创建了所需的类。您可以更改它们,但每次都在创建employee对象。我已经更正了代码并调试了它,您将知道哪里出了问题。
导入java.util.Calendar;
导入java.util.Date;
导入java.util.Scanner;
类名{
私有字符串名称;
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
}
班级地址{
私有字符串地址;
公共字符串getAddress(){
回信地址;
}
公共无效设置地址(字符串地址){
this.address=地址;
}
}
公营雇员{
私有整数;
私有名称name1=新名称();
专用地址address1=新地址();
私人雇佣日期=新日期();
字符串编号1;
public void getDate1(int d,int m,int y){
日历=Calendar.getInstance();
日历集(y、m、d);
hireDate=calendar.getTime();
}
公共void getID(int x){
数字=x;
}
公共void集合名(字符串n){
名称1.设置名称(n);
}
公共无效getAddress(字符串a){
地址1.设定地址(a);
}
字符串z;
公共字符串toString(){
number1=字符串。valueOf(number);
字符串name2=name1.getName();
字符串address2=address1.getAddress();
String hireDate2=String.valueOf(hireDate);
z=number1+“”+name2+“”+address2+“”+hireDate2;
返回z;
}
公共静态void main(字符串参数[]){
扫描仪输入=新扫描仪(System.in);
System.out.println(“请输入员工人数:”);
int input1=input.nextInt();
input.nextLine();
员工[]员工=新员工[input1];
对于(int i=0;iI 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]);

        }

    }
}