Java 员工、姓名、姓氏和ID

Java 员工、姓名、姓氏和ID,java,Java,我刚刚开始,它真的很混乱,因为当我编写代码时,eclipse上没有红色警告,但是当我运行程序时,它不工作。 问题是: 编写一个显示员工ID和员工姓名的程序。使用两个类。第一个类包含employee数据和用于设置ID和名称的单独方法。另一个类为雇员创建对象,并使用这些对象调用set方法。创建多个员工并显示他们的数据 我的代码是: public class Employee { String lastName = null; String firstName = null;

我刚刚开始,它真的很混乱,因为当我编写代码时,eclipse上没有红色警告,但是当我运行程序时,它不工作。 问题是:

编写一个显示员工ID和员工姓名的程序。使用两个类。第一个类包含employee数据和用于设置ID和名称的单独方法。另一个类为雇员创建对象,并使用这些对象调用set方法。创建多个员工并显示他们的数据

我的代码是:

public class Employee {
    String lastName = null; 
    String firstName = null; 
    double ID; 

    public Employee(String lastName, String firstName, double ID){
        this.lastName = lastName; 
        this.firstName = firstName; 
        this.ID = ID; 
    }

    public String empStat(){
        return "Last Name: " + lastName + "First Name: " + firstName + "ID" + ID; 
    }

}

它所做的只是显示

Employee@523ce3f Employee@71b98cbb Employee@4cc68351 Employee@7cd76237 Employee@523ce3f Employee@71b98cbb Employee@4cc68351 Employee@7cd76237 有人能告诉我为什么吗

变化

public String empStat()

查看
toString()
是如何工作的(以及为什么会看到Employee@523ce3f)在


当您使用
System.out.println(nub1)时
隐式调用方法
nub1.toString()

必须重写toString()方法。每当对象需要返回对象的字符串时,都会调用该函数。默认情况下,您会收到'Employee@523ce3f'是对象的唯一内部表示形式(字符串形式)

仅仅创建一个返回字符串的方法并不能做到这一点

要覆盖toString()方法更改,请执行以下操作:


公共字符串empStat()

@凌驾 公共字符串toString()
如果您试图打印对象,它将输出对象的哈希代码。打印对象调用对象类中的
toString()
方法时,必须重写toString方法以获取对象的状态

public String toString()
{
return firstName+" "+lastName+" "+ ID;
}
List<Employee> list= new ArrayList<Employee>();
Employee o= new Employee("Will","Smith",1);
Employee o1= new Employee("Jason","Bourne",2);
list.add(o);
list.add(o1);
for (Employee x:list)
System.out.print(x);

重写<代码> toStase是最简单的方法,考虑一个列表:<代码> <代码>类型。打印列表现在将返回对象的当前字段值

public String toString()
{
return firstName+" "+lastName+" "+ ID;
}
List<Employee> list= new ArrayList<Employee>();
Employee o= new Employee("Will","Smith",1);
Employee o1= new Employee("Jason","Bourne",2);
list.add(o);
list.add(o1);
for (Employee x:list)
System.out.print(x);

您需要一个
toString
方法a

public String toString() {
    return lastName + " " + firstName + " " + Double.toString(ID);
}
总而言之:

class Employee {
    String lastName = null;
    String firstName = null;
    double ID;

    public Employee(String lastName, String firstName, double ID){
        this.lastName = lastName;
        this.firstName = firstName;
        this.ID = ID;
    }

    public String empStat(){
        return "Last Name: " + lastName + "First Name: " + firstName + "ID" + ID;
    }

    public String toString() {
        return lastName + " " + firstName + " " + Double.toString(ID);
    }

}
public class MainEmployee {
    public static void main(String args[]){

        Employee nub1 = new Employee ("Griffin", "Peter", 000001);
        System.out.println(nub1);
        Employee nub2 = new Employee ("Griffin", "Lois", 000002);
        System.out.println(nub2);
        Employee nub3 = new Employee ("Griffin", "ST", 000003);
        System.out.println(nub3);
        Employee nub4 = new Employee ("Griffin", "Brian", 000004);
        System.out.println(nub4);
    }
}
结果如下:

Griffin Peter 1.0
Griffin Lois 2.0
Griffin ST 3.0 
Griffin Brian 4.0

请注意:不要养成零填充数字的习惯
000010
不是您认为的数字。另见
class Employee {
    String lastName = null;
    String firstName = null;
    double ID;

    public Employee(String lastName, String firstName, double ID){
        this.lastName = lastName;
        this.firstName = firstName;
        this.ID = ID;
    }

    public String empStat(){
        return "Last Name: " + lastName + "First Name: " + firstName + "ID" + ID;
    }

    public String toString() {
        return lastName + " " + firstName + " " + Double.toString(ID);
    }

}
public class MainEmployee {
    public static void main(String args[]){

        Employee nub1 = new Employee ("Griffin", "Peter", 000001);
        System.out.println(nub1);
        Employee nub2 = new Employee ("Griffin", "Lois", 000002);
        System.out.println(nub2);
        Employee nub3 = new Employee ("Griffin", "ST", 000003);
        System.out.println(nub3);
        Employee nub4 = new Employee ("Griffin", "Brian", 000004);
        System.out.println(nub4);
    }
}
Griffin Peter 1.0
Griffin Lois 2.0
Griffin ST 3.0 
Griffin Brian 4.0