【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;
}
(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;
}
相关文章推荐
- Java中的Object类的toString()方法,equals()方法
- Java自学笔记(第八天)-多态-instanceof关键字-equals方法-toString方法-object类-class类-
- Java中Object类的方法(toString方法和equals方法)
- Java:object类 中常用equals()和 toString()方法的重写
- JAVA笔记7-Object类之toString方法和equals方法
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解
- java学习之旅40--面向对象_13_继承_Object类用法_toString和equals方法_重写toString
- 【Java】Java中的instanceof,Object类,equals()方法,toString()方法
- java对象通用方法之覆盖equals时请遵守通用约定、覆盖equals时总要覆盖hashCode、始终要覆盖toString、考虑实现Comparable接口
- 《问题总结》JAVA什么时候要覆盖toString()、equals()、hashCode()方法??为什么要覆盖呢? 《通俗回答》
- 22-JAVA面向对象-重写toString()与equals()方法
- Java中重写Object类的equals方法和Hashcode方法的注意事项
- java equals与hashCode 两个重要方法的重写
- 44 java toString 方法 重写equals 方法
- java Object类中的toString方法
- Object类中equals,hashCode和toString方法的学习
- Java学习之面向对象(1.Object类,(1)toString方法,(2)equals方法,2.对象转型(casting),3.动态绑定与多态,4.抽象类(abstract),5.Final关键字)
- Java J2SE / 基础类 中关于 为什么要改写java中Object类的equals方法 的 问题
- Object类中的equals与toString方法概述