Java类和对象的例子
创建两个类:Employee 和 EmployeeTest
Employee 类有四个成员变量:name、age、designation 和 salary,该类显式声明了一个构造方法,该方法只有一个参数。
Employee.java 文件代码:
1 | import java.io.*; |
toString()的概述
toString()
方法是 Java 中的一个内置方法,属于 Object
类。
A. 作用:
toString()
方法的主要作用是返回一个对象的字符串表示。
如果不重写该方法,默认情况下,它返回的是对象的类名和该对象的哈希码值
默认的toString()
方法返回结果类似于:
1 | ClassName//Hashcode 翻译为"哈希码" 或 "散列码" |
在实际开发中,通常会重写它,使其返回更具可读性和有用的对象信息。重写 toString()
方法可以提高调试、日志记录等方面的效率和便利性。
B. 默认实现
1 | public String toString() { |
这个实现返回的是对象的类名(getClass().getName()
)和该对象的哈希码(hashCode()
)的十六进制表示
1 | return getClass().getName() + "@" + Integer.toHexString(hashCode()); |
getClass()
:这个方法返回当前对象的Class
对象,代表该对象的类。getName()
:这是Class
类的一个方法,返回该类的完全限定名(包括包名)"@"
:这是一个字符串常量,用来将类名和哈希值分隔开,符合ClassName@hashcode
这种常见格式。hashCode()
:这是Object
类的方法,返回该对象的哈希码(一个整数值),它是由 JVM 为对象分配的一个唯一标识符(虽然不是完全唯一,但在同一时间内每个对象都有一个不同的哈希值)。Integer.toHexString(hashCode())
:这个方法将哈希码(整数类型)转换为十六进制字符串。通过这种方式,哈希码在输出时会变得更简洁、更易于阅读。
C. 重写toString()方法:
为了让 toString()
方法返回更有用的信息,我们通常会在自定义类中重写它。重写后,toString()
方法通常会返回该对象的属性值,以便方便地查看对象的内容。
EmployeeTest.java文件:
1 | import java.io.*; |
总结:
这段代码创建了两个 Employee
对象,并通过调用它们的方法设置员工的年龄、职位和薪水,最后打印出这些信息。它展示了如何使用构造器创建对象,以及如何通过调用对象的成员方法修改对象的属性并输出结果。Employee
类应当包括 setAge
、setDesignation
、setSalary
和 printEmployee
等方法。