JAVA笔记十一(44-45 equals函数、hashcode()与toString())
2013-06-27 17:45
405 查看
四十四、equals函数的作用
1.equals函数在什么地方
包含在Object类中,Object是所有函数的父类,所以所有的类都包含equals函数。2.equals函数的作用
“==”操作符的作用:对于对象,==表示两个引用指向同一个对象。equals的作用,是比较两个对象是否相同。
在通常情况下,对象内容相同的条件:1)对象的类型相同(可以使用instanceof操作符进行比较); 2)两个对象的成员变量的值完全相同;
3.复写equals函数的方法
class User{ String name; int age; User(String name,int age){ this.name = name; this.age = age; } public boolean equals(Object obj){ if(this == obj){ return true; } boolean b = obj instanceof User; if(b){ User u = (User)obj; if(this.name.equals(u.name) && this.age == u.age){ return true; } else{ return false; } } else { return false; } } }
class Test{ public static void main(String[] args){ User a = new User("zhangsan",20); User b = new User("lisi",20); User c = a; User d = new User("zhangsan",20); //比较两个引用是否指向同一个对象。 System.out.println(a == c); System.out.println(a == d); //比较两个引用指向的对象的内容是否相等。 System.out.println(a.equals(c)); System.out.println(a.equals(d)); System.out.println(a.equals(b)); } }运行结果:
实际开发过程中,通常利用开发工具直接生成复写equals方法的代码。
四十五、hashcode()与toString()
1、hashCode()的作用
什么是Hash算法:任意长度的数据,通过hash算法,得到一个唯一的散列值。(应用:加密/数据加密)用于存储数据,用散列值与数据存储位置建立关联,寻找数据时,可以根据散列值找到数据。提高查找效率。
深入了解,多读一些资料。算法与数据结构。
2.hashCode()的实现方法
hashCode是Object中的函数,所有类都有hashCode()方法。放回值为整型,叫做哈希码。在sun公司的规定中,如果两个对象用equals相比,是相等的,那么它们用hashCode()计算出来的哈希码也是一样的。
如果
返回值为一个整型。
3.toString()的作用
toString()是Object中的函数,所有类都有toString函数。作用:把一个无论什么类型的对象,转换成一个String字符串,使程序有更好的可读性。便于开发者调试。
4.toString()的实现方法
class User{ String name; int age; User(){ } User(String name,int age){ this.name = name; this.age = age; } public String toString(){ String result ="age:"+ age + ",name:" + name;//把成员函数的值打印出来。 return result; } }
import java.util.*; class Test{ public static void main(String[] args){ User u = new User("zhangsan",20); System.out.println(u);// 打印对象时,先调用toString方法,然后把返回的值打印出来。 } }
相关文章推荐
- Java学习笔记(44)----------探索equals()和hashCode()方法
- java45hashCode和toString
- JAVA学习笔记整理十一(数据库编程)
- java学习笔记-JAVA中toString方法的作用
- Effective Java 学习笔记(十、十一、十二)
- Java基础[5]-1-this和super;静态和动态绑定;equals与hashCode和toString
- 关于Java中equals()和hashCode()的用法笔记。
- Java基础学习笔记十一 Eclipse开发工具
- Java_jdbc 基础笔记之十一数据库连接 (通用的查询方法)
- Java学习笔记(十一)日期日历类和随机类等
- Java学习笔记8:覆盖equals时总是要覆盖hashCode
- java 设计模式学习笔记十一flyweight享元设计模式
- Java 对象的 toString() 方法 -Java 学习笔记 (16)
- java对象通用方法之覆盖equals时请遵守通用约定、覆盖equals时总要覆盖hashCode、始终要覆盖toString、考虑实现Comparable接口
- equals函数,hashCode(),toString()的作用和实现方法
- Androidx学习笔记(45)--- 获取文件的后缀名(java基本语法)
- java之学习笔记--hashcode获取对象
- Java学习笔记(45)------------Hashcode的作用
- Java学习笔记9:始终要覆盖toString
- java 设计模式学习笔记十一flyweight享元设计模式