Object类—复写equals方法,hashCode方法,toString方法
Object:所有类的根类。
Object是不断抽取而来,具备着所有对象都具备的共性内容。
class Person extends Object {
private int age;
Person(int age) {
this.age = age;
}
/* 老方法:比较Person的年龄。是否是同龄人 */
// public boolean compare(Person p) { return this.age ==
// p.age; }
/* 新方法:一般都会覆盖此方法,根据对象的特有内容,建立判断对象是否相同的依据。(常用复写equals) */
public boolean equals(Object obj)// Object obj = p2;隐藏着向上转型
{
// 健壮性判断
if (!(obj instanceof Person)) {
throw new ClassCastException("类型错误");
}
Person p = (Person) obj;// 向下转型,否则无法调用Person的属性age
return this.age == p.age;
}
/* 复写hashcode() */
// public int hashCode() {
// return age;
// }
/* 复写toString() */
// public String toString() {
// return "Person:" + "age=" + age;
// }
}
class ObjectDemo {
public static void main(String[] args) {
Person p1 = new Person(60);
Person p2 = new Person(20);
// System.out.println(p1.equals(p2));
// System.out.println(p1);// 默认调用p1.toString
// System.out.println(Integer.toHexString(p1.hashCode()));
/* 是不是同一个类 */
// Class clazz1 = p1.getClass();
// Class clazz2 = p2.getClass();
// System.out.println(clazz1 == clazz2);
// System.out.println(clazz1.getName());// Person
// System.out.println(p1.toString());// Person@61de33
// System.out.println(p1.getClass().getName() + "$" +
// Integer.toHexString(p1.hashCode()));// Person$61de33
// System.out.println("==:" + (p1 == p2));
// System.out.println("equals:" + p1.equals(p2)); //
// equals()方法,比较的是地址值。对于非字符串变量,equals比较的是内存的首地址,这时候和==是一样的,即比较两边指向的是不是同一个对象。
}
}
Object类—复写equals方法,hashCode方法,toString方法的更多相关文章
- 复写equals、hashCode和toString方法
equals.hashCode和toString 这三个方法都是object类的方法,由于所有的类都是继承这个类,所以每一个类都有这三个方法. 1.复写equals方法 原则: 首先,两个实例是相同的 ...
- Java:验证在类继承过程中equals()、 hashcode()、toString()方法的使用
以下通过实际例子对类创建过程汇中常用的equals().hashcode().toString()方法进行展示,三个方法的创建过程具有通用性,在项目中可直接改写. //通过超类Employee和其子类 ...
- Java基础(六)判断两个对象相等:equals、hashcode、toString方法
1.equal方法 Object类中的equal方法用于检测一个对象是否等于另外一个对象.在Object类中,这个方法将判断两个对象是否具有相同的引用.如果两个对象具有相同的引用,它们一定是相等的.然 ...
- 关于Object类的equals方法和hashCode方法
关于Object类的equals的特点,对于非空引用: 1.自反性:x.equals(x) return true : 2.对称性:x.equals(y)为true,那么y.equals(x)也为tr ...
- Object类中通用方法之:toString()方法
1.Java所有的对象都是Object类的实例,都可以直接调用该类中定义的方法,这些方法称为通用方法 2.toString()方法即为Object类中定义的通用方法之一 3.平时我们如果在控制台直接打 ...
- object类的equals方法简介 & String类重写equals方法
object类中equals方法源码如下所示 public boolean equals(Object obj) { return this == obj; } Object中的equals方法是直接 ...
- Object类的equals()方法总结
1.equals()是Object中的方法,作用在于检测一个对象是否等于另一个对象. 2.在Object类中equals()方法是判断两个对象是否有相同的引用 ,即是否是相同的对象. 3.String ...
- Java Object类及其equals方法
基本概念: Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: Object类是所有Java类的祖先.每个类都使用 Object 作为超 ...
- Java Object类的equals()方法
所有类都从Object类中继承了equals方法,Object类中equals方法源代码如下: public boolean equals(Object obj) { retu ...
随机推荐
- 201521123084 《Java程序设计》第4周学习总结
第4周作业-面向对象设计与继承 1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 总结: (1)学会了如何给类和方法进行简单的注释: (2)学 ...
- 201521123011《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. XMind 2. 书面作业 1.clone方法 1.1 O ...
- 201521123007《Java程序设计》第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...
- 201521123004《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 答:思维导图如下: Java中使用try-catch语法处理异常: try { 可能产生异常的代码段 }catch ...
- 201521123085 《Java程序设计》第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...
- Eclipse rap 富客户端开发总结(6) : 如何发布rap到tomcat
1.先下载以来的打包插件 war products 输入下面的地址,选择相应的插件 新建一个 war product Configutation向导 下面的war product Configut ...
- Oracle总结第二篇【视图、索引、事务、用户权限、批量操作】
前言 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了-那么本篇主要总结关于Oralce视图.序列.事务的一些内容- 在数据库中,我们可以把各种的SQL语句分为四大类- (1 ...
- [13] static 和 final
不论是类.属性,还是方法的声明中,都有一个可设置的"修饰符",它可以实现一些高级特性. 1.static static被称之为静态的,并不是指不可以修改的意思,而是说它的内存空间是 ...
- 浅谈SQL优化入门:3、利用索引
0.写在前面的话 关于索引的内容本来是想写的,大概收集了下资料,发现并没有想象中的简单,又不想总结了,纠结了一下,决定就大概写点浅显的,好吧,就是懒,先挖个浅坑,以后再挖深一点.最基本的使用很简单,直 ...
- 03标准对象-01-Date和JSON
0.写在前面的话 在JS世界中,一切都是对象,区别对象类型使用tyepof,返回一个字符串,如: typeof 123; // 'number' typeof NaN; // 'number' typ ...