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