Object类是所有引用类型的祖先类,位于java.lang包中。java.lang包含有Java最基础和核心的类,在编译时会自动导入。
Object含有的方法如下:
Java规定:在类定义过程中,对于未定义构造函数的类,默认会有一个无参数的构造函数,Object也是如此。
1.registerNatives()
//主要作用是将C/C++中的方法映射到Java中的native方法,实现方法命名的解耦。
private static native void registerNatives();
static {
registerNatives();
}
native关键字:用native关键字修饰的函数表明该方法的实现并不是在Java中去完成,而是由C/C++去完成,并被编译成了.dll,由Java去调用。
2.getClass()方法
返回的是此Object对象的类对象/运行时类对象Class<?>。效果与Object.class相同。
不能被重写。
public final native Class<?> getClass();
"类对象"概念:在Java中,类是对具有一组相同特征或行为的实例的抽象并进行描述,对象则是此类所描述的特征或行为的具体实例。作为概念层次的类,其本身也具有某些共同的特性,如都具有类名称、由类加载器去加载,都具有包,具有父类,属性和方法等。于是,Java中有专门定义了一个类(Class),去描述其他类所具有的这些特性,因此,从此角度去看,类本身也都是属于Class类的对象。为与经常意义上的对象相区分,在此称之为"类对象"。
2.clone()方法
(1)也是native方法,并不是在java中实现
(2)clone函数返回的是一个引用,指向的是新的clone出来的对象,新克隆出来的对象与原对象分别占用不同的堆空间。
(3)clone出来的对象的改变不影响原来对象,原来对象的改变也不影响clone出来的对象。
protected native Object clone() throws CloneNotSupportedException;
3.equals()方法
判断两个对象是否相等,子类中一般要重写该方法。
public boolean equals(Object obj) {
return (this == obj);
}
4.hashCode()
返回对象的哈希码值。hashCode()方法主要用于增强哈希表的性能。
public native int hashCode();
5.toString()方法
getClass()返回对象的类对象,getClassName()以String形式返回类对象的名称(含包名)。Integer.toHexString(hashCode())则是以对象的哈希码为实参,以16进制无符号整数形式返回此哈希码的字符串表示形式。
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
例子:
Student student=new Student(1,"nana",20,99);
System.out.println(student);
6.未完