Day_11
Object 类
1、Object是所有类的父类(女娲),每个类都使用Object类作为超类
所有对象或者数组都是实现这个类的方法; 每个类都是直接或者间接继承Object类
2、Object中的常用方法:
掌握:toString方法、equals方法
A:toSring方法:public String toString();返回该对象的字符串表示
toString方法返回的一个字符串是没有意义的。所以建议所有子类,都重写该方法。
如何重写? --> 把该类的所有成员变量值 组成返回即可
public String toString(){
return “name,age...”
}
注意:sout(s);相当于sout(s.toSring);
直接输出对象的时候,其实相当于调用的是 对象的toSring方法
B:equals 方法
equals方法比较的是地址值,一般默认情况下,比较的是地址值。但是没有任何意义,所以需要重写equals方法。
在Object类中,equals方法比较的是成员变量是否相同。
如:name是String类型,age是int类型。不能用==来比较,则可使用equals比较,比较的是两个类的成员变量是否相等。
C: hashCode方法
public int hashCode();方法是返回改对象的哈希值,用int类型接收。
哈希值是该对象的内部地址值,通过哈希运算得到的一个值。(不是地址值)
D:getClass方法
public final Class getClass(); 该方法返回值是一个Class类名,所以真实返回的是一个Class类的对象。
所以返回的这个对象,是可以调用Class类中的方法的。
返回的对象,可以直接调用Class方法中的getName方法:public String getName();
以String的形式返回此Class对象所表示的实体名称(打印的是一个全路径的类名名称)
3、两个注意问题:
1、)后面遇到直接输出一个对象名称,其实默认调用了该对象的toString方法。
2、)==和equals()区别?
==:基本类型:比较的是值是否相等。 引用类型比较的是地址值是否相同;
equals: 只能比较引用类型,一般默认比较的是地址值。 我们可以根据需要重写该方法,重写后,比较的是两个对象的成员变量是否相同。