Java入门第89课——Object
1.1 Object
1.1.1 Object
· 在Java类继承结构中,java.lang.Object类位于顶端;
· 如果定义一个Java类时没有使用extends关键字声明其父类,则其父类默认为java.lang.Object类;
· Object类型的引用变量可以指向任何类型对象。
1.2 toString方法
1.2.1 如何重写toString方法
· Object类中的重要方法,用于返回对象值的字符串表示;
· 原则上建议重写,格式大多数遵循 “类的名字[域值]“,例如:
public String toString(){
return getClass().getName()
+"[name="+name
+",salary="+salary
+",gender="+gender
+"]";
}
如何重写toString方法(续1)
· Java语言中很多地方会默认调用对象的toString方法:
- 字符串+对象,自动调用对象的toString方法
- System.out.print(任意对象),直接调用toString方法
· 如果不重写toString方法,将使用Object的toString方法,其逻辑为:
- 类名@散列码
· toString方法是非常有用的调试工具
· JDK中的标准类库中,许多类都定义了toString方法,方便用户获得有关对象状态的必要信息;
· 强烈建议为自定义的每一个类增加toString方法。
1.2.2 String重写toString方法
· String的toString()方法就是将自身返回了。
public String toString(){
return this;
}
1.3 equals方法
1.3.1 equals方法
· Object中的equals方法,作用在于检测一个对象是否等于另外一个对象;
· 在Object类中,这个方法判断两个对象是否具有相同的引用,即是否为相同的对象;
· 在实际应用中,一般需要重写该方法,通过比较对象的成员属性,使该方法更有意义,例如:对于Cell类,如果不重写equals方法,下面代码在cell1和cell2指向同一个对象时才为true,可以将其重写为:当x和y坐标相等时两个对象即相等,这样更有意义一些。
cell1.equals(cell2);
1.3.2 如何重写equals方法
public boolean equals(Object obj){
if(obj==null){
return false;
}
if(this==obj){
return true;
}
if(obj instanceof Cell){
Cell cell=(Cell)obj;
return cell.row==row&&cell.col==col;
}else{
return false;
}
}
1.3.3 String重写equals方法
· String的equals方法用于比较两个字符串对象的字符序列是否相等。
/** 测试字符串的比较 */
public class Demo{
public static void main(String[] args){
String s1=new String("abc");
String s2=new String("abc");
String s3=new String("A");
System.out.println(s1.equals(s2));//true
System.out.println(s1.equals(s3));//false
}
}
1.3.4 equals和==的区别
· ==用于比较变量的值,可以应用于任何类型,如果用于引用类型,比较的是两个引用变量中存储的值(地址信息),判断两个变量是否指向相同的对象;
· equals是Object的方法,重写以后,可以用于比较两个对象的内容是否“相等”;
· 需要注意的是,Object默认的equals方法的比较规则同==
还没有评论,来说两句吧...