API
API(Application Programming Interface) 应用程序编程接口
Java API
java提供给我们使用的类,这些类将底层的实现封装了。
Object类
类层次结构的根类,所有类都直接或间接的继承自该类
Object类的hashcode()方法
概述:
返回该对象的哈希码值。默认情况下该方法会根据对象的地址来计算。
不同对象的哈希码值一般不会相同,但是同一对象的哈希码值一定相同。
不是对象的实际地址值。
public class Test {
public static void main(String[] args) {
Object obj = new Object();
Object obj2 = new Object();
int a = obj.hashCode();
int b = obj2.hashCode();
System.out.println(a);
System.out.println(b);
}
}
Object类的getClass()方法
概述:public final class getClass()
返回此Object的运行时类
可以通过Class类中的一个方法,获取对象真实类的全名称
public class Test{
public static void main(String[] args){
Object a=new Object();
Object b=new Object();
Object aClass=a.getClass();
Object bClass=b.getClass();
boolean c=(aClass==bClass);
System.out.println(b)//通过布尔类型判断这两个对象是否是同一类
}
}
Object类中的equals()方法
*指示其他某个对象是否与此对象“相等”
*默认情况下比较的是对象的引用是否相同。
*由于比较对象的引用没有任何意义,一般建议重写该方法。一般用于比较成员变量的值是否相等
格式:
public boolean equals(Object obj){
return(this==obj);
}
对equals()方法进行优化:
Object类中的toString()方法
返回该对象的字符串表示。通常,toString方法会返回一个“以文本方式”表示此对象的字符串。
Object类的toString方法一个字符串,该字符串由类名(对象是该类的一个实例)、标记符@和此对象的哈希码的无符号十六进制表示组成。建议子类重写该方法。
我们一般重写该方法:
public String toString(){
return "姓名:"+this.name+" "+"年龄:"+this.age;//调用重写过后的toString方法返回的是该对象的基本属性值
}
Object类中的clone()方法
protected Object clone() throws CloneNotSupportedException
* 创建并返回该对象的一个副本。
* 如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。
* clone 方法的权限修饰符是protected ,子类要重写该方法后才能使用。
*复制后的对象和被复制的对象是独立存在的。
代码演示:
public class Test {
public static void main(String[] args) throws CloneNotSupportedException {
Teacher t1 = new Teacher("张飞", 36);
Teacher t2 = (Teacher) teacher.clone();
t1.name = "刘备";
t1.age = 39;
System.out.println(t1);
System.out.println(t2);
System.out.println(t1.equals(t2));//显示false,因为teacher与teacher1是不同的对象
}
}
class Teacher extends Person implements Cloneable{
public Teacher(String name, int age) {
super(name, age);
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}