首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Object

【Object】

在Java类继承结构中,java.lang.Object类位于顶端。

如果定义一个Java类时没有使用extends关键字声明其父类,则其父类默认为java.lang.Object类。例如:

public class Demo(这里默认有extends Object){

public static void main(String[] args){

Demo d=new Demo();

d.toString();//该类没有定义toString方法,但是这里不报错,说明该方法来自父类Object

}

}

Object类型的引用变量可以指向任何类型对象。

【toString方法】

1、如何重写toString方法

Object类中的重要方法,用于返回对象值的字符串表示;原则上建议重写,格式大多数遵循"类的名字[域值]",例如:

public String toString(){

return getClass().getName()+"[name="+name+",salary="+",gender="+gender+"]";

}

Java语言中很多地方会默认调用对象的toString方法:

1)字符串+对象,自动调用对象的toString方法

如果不重写toString方法,将使用Object的toString方法,其逻辑为:

-类名@散列码

toString方法是非常有用的调试工具;JDK中的标准类库中,许多类都定义了toString方法,方便用户获得有关对象状态的必要信息。

强烈建议为自定义的每一个类增加toString方法。

2、重写Cell的toString()方法

public class Cell{

/** 重写toString方法,返回对cell信息的描述 */

@Override

public String toString(){

return getClass().getName()+"["+row+","+col+"]";

}

}

3、String重写toString

当使用一个类的toString方法时,就应当重写该方法,因为Object提供的toString格式为:类名@地址。通常这个对我们了解当前实例信息没有帮助。

String的toString()方法就是将自身返回了。

public String toString(){

return this;

}

【equals方法】

Object中的方法,作用在于检测一个对象是否等于另外一个对象;在Object类中,这个方法判断两个对象是否具有相同的引用,即是否为相同的对象;在实际应用中,一般需要重写该方法,通过比较对象的成员属性,使该方法更有意义,例如:对于Cell类,如果不重写equals方法,下面代码在cell1和cell2指向同一个对象时才为true,可以将其重写为:当x和y坐标相等时两个对象即相等,这样更有意义一些。

cell1.equals(cell2);

1、如何重写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;

}

}

2、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

}

}

3、equals和==的区别

==用于比较变量的值,可以应用于任何类型,如果用于引用类型,比较的是两个引用变量中存储的值(地址信息),判断两个变量是否指向相同的对象;equals是Object的方法,重写以后,可以用于比较两个对象的内容是否“相等”;需要注意的是,Object默认的equals方法的比较规则同==。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180224G14ONV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券