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