Java零基础学习(Object类)
2021-05-29 23:01
标签:程序 加载 实现 interface 文件类型 als throw err 关心 Java零基础学习(Object类) 标签:程序 加载 实现 interface 文件类型 als throw err 关心 原文地址:https://www.cnblogs.com/N-jack/p/14765471.htmlJava零基础学习(Object类)
API概述以及Object类的概述
1.API(Application Programming Interface)
应用程序编程接口
2.Java API
就是Java提供给我们使用的类,这些类将底层的实现封装了起来
我们不需要关心这些类是如何实现的,只需要学习如何使用过这些类
3.Object类概述
类层次结构的根类
所有类都直接或者间接的继承此类
4.构造方法
public Object()
子类的构造方法默认访问的是父类的无参构造方法
Object类的hashCode()方法
public int hashCode()
1.返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算
2.不同对象的hashCode()一般来说不会相同。
但是,同一对象的hashCode()值肯定相同。
3.不是对象的实际地址值,可以理解为逻辑地址值
Object类的getClass()方法
public final Class getClass()
1.返回此Object的运行时类。
2.可通过Class类中的一个方法,获取对象的真实类的全名称
public String getName()
/*Object.java-----Object.class-----当Object.class加载进内存,他会把Object.class也看做对象,所以会创建字节码文件对象
---- 我们可以通过 getClass()方法,来获取字节码文件对象
Class 这个就是描述 字节码文件类型的 。
*/
同一类的getClass()是相同的
Object类的toString()方法
public String toString()
1.返回该对象的字符串表示
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
2.它的值等于:
getClass().getName() + "@" + Integer.toHexString(hashCode());
3.由于默认情况下的数据对我们来说没有意义,一般建议重写该方法。
一般情况是将该类所有的成员变量组成返回即可
4.直接输出对象的名称,就是调用toString()方法.
Object类的equals()放法
public boolean equals(Object obj){
return (this==obj);
}
1.指示其他对象是否与此对象“相等”。
2.默认情况下比较的是对象的引用是否相同。
3.由于比较对象的引用没有意义,一般建议重写该方法。一般用于比较成员变量的值是否相等。
4.equals()和==的区别
==比较基本数据类型是比较两个数据的值是否相等,比较引用数据类型是比较地址值是否相等,equals()方法如果没有被重写就是表两个对象是否是同一个对象,如果被重写就根据重写的内容执行
Object类的clone()方法
clone()方法的权限修饰符是受保护的,在用的时候,让该类重写该方法,并且把方法的权限修饰符改为public
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
使用clone()方法采用的是对象的浅克隆方式
对象浅克隆的注意事项:
1.如果一个对象要调用clone()的方法克隆,那么该对象所属的类必须要实现Cloneable接口
class Dog implements Cloneable{}
2.Cloneable接口只不过是一个表示接口而已,没有任何方法
3.对象的浅克隆:就是克隆一个对象的时候,如过被克隆的对象中维护了另一个类的对象,这时候只是克隆另一个对象的地址,而没有把另一个对象也克隆一份。
4.对象的浅克隆不会调用到构造方法
文章标题:Java零基础学习(Object类)
文章链接:http://soscw.com/index.php/essay/89292.html