您的位置:首页 > 移动开发 > Objective-C

Object类的toString()和equals()方法

2017-12-25 18:15 375 查看

Object类:

Object类是Java类的根基类(祖先类),所有类都直接或者间接的继承Object类。

Object类的构造方法只有一个,并且是无参构造,子类默认调用父类的无参构造。

接下来总结一下Object类的两个方法toString()和equals():

1)toString()

Object类中定义有public String toString()方法,其返回值是String类型,描述当前对象的有关信息。

即如果直接打印某对象的引用,则默认会调用这个对象的toString()方法,默认打印的内容中包含这个引用所指向的内存地址(类的全路径+‘@’+哈希值的十六进制)。

所以这个表示其实是没有意义的,我们可以根据需要在用户自定义类中重写toString()方法。

例如:如果我们要获取一个对象所包含的属性值(姓名、性别、年龄),那么可以重写父类的toString()方法:

@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", sex=" + sex
+ "]";
}

2)equals()

Object类中定义有public Boolean equals(Object obj)方法,提供定义对象是否“相等”的逻辑。默认情况下比较的是地址值是否相等,而比较地址值是没有意义的,所以一般子类也会重写该方法。

例如:String类中已经重写了equals(Object obj)方法,重写后的方法比较的是两个字符串的内容是否相等。

当然我们也可以根据需要在用户自定义类中重写equals方法。

最后总结一下 ==和equals()的区别:

1)==

 基本类型:比较的是值是否相等

 引用类型:比较的是地址值是否相同

2)equals()

 只能比较引用类型。默认情况下,比较的是地址值是否相同。但是我们可以根据需要重写该方法。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐