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

【Java入门第一季】Object类的两个方法toString()和equals()

2018-02-15 12:40 567 查看
1.toString()
(1)Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object类。
(2)Object类中的方法,适合所有子类。
(3)toString()方法

在Object类里面定义toString()方法的是返回的对象的哈希code码(对象地址字符串),如果直接输出对象名,就会执行toString()方法。
例如:System.out.println(实例化对象名);
(4)通常我们输出对象时想得到的是对象的属性值,因此需要对toString()方法进行重写。可以使用eclipse重写Object类的toString()方法,在Source中
public String toString() {
return "HelloWorld[name="+name+"]";

}
2.equals()
(1)equals()是通过==实现的,比较的是对象的引用是否相同,即是否指向同一块内存地址。
(2)若想利用equals()来比较两个对象的属性是否相同,需要对Object类中的equals()方法重写。
(3)一般对于新建的类,如果需要比较对象属性是否相等,那么需要重写equals()方法。这里注意对于Java中一些现有的类,有一些已经自动重写了equals()方法,这里典型的是String类,表示的是两个String对象是否相等,即



     (4)使用eclipse重写equals方法----->两种方法

      这里引入一个新的内容:类对象
      类对象和类的对象的区别,前者是类的代码信息,包含哪些属性,而后者是类的实例,表示属性的具体值,如图:




以下两种方法的区别在于通过何种方式判断输入的对象和本对象的类型是否一致,是通过getClass()还是通过instanceof关键字
第一种:
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof Student))
return false;

Student other = (Student) obj;
if (name == null) {
if (ot
4000
her.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;

}
第二种:
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;

Student other = (Student) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐