Java常用API——Object类
一、API文档中的Object类
-
Object类是类层次结构的根类 所有类都直接或间接的继承自Object类
二、Object类中的方法
-
public int hashCode():返回该对象的哈希码值(对象的逻辑地址值) public final Class<?> getClass():返回此 Object 的运行时类 public String toString():返回该对象的字符串表示
三、hashCode方法
-
public int hashCode():返回该对象的哈希码值(对象的逻辑地址值)
//Student.java
public class Student extends Object {
}
//StudentTest.java
public class StudentTest {
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student();
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
}
}
***执行结果:*** 664740647 804564176
-
默认情况下每个对象在内存中的位置是不一样的,所以hashCode值也不一样 让每个对象的hashCode值都一样的方法:重写父类的hashCode方法
//Student.java
public class Student extends Object {
@Override
public int hashCode() {
return 10;
}
}
//StudentTest.java
public class StudentTest {
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student();
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
}
}
***执行结果:*** 10 10
四、getClass方法
-
public final Class<?> getClass():返回此 Object 的运行时类 Class是一种类型,而class是定义类的关键字 Class类型对应的对象是字节码文件(.class文件)对象 在程序运行过程中,同一类创建的对象所使用的是同一份字节码文件
public class StudentTest2 {
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student();
Class clazz1 = s1.getClass();
Class clazz2 = s2.getClass();
//在一个程序运行过程中,同一类创建的对象所使用的是同一份字节码文件
boolean boo = clazz1==clazz2;
System.out.println(boo);
//getName()返回的是类的全路径名称
String name = clazz1.getName();
System.out.println(name);
//链式编程,两行代码合二为一
String name2 = s2.getClass().getName();
System.out.println(name2);
}
}
***执行结果:*** true com.api.object.demo.Student com.api.object.demo.Student
五、toString方法
