javaObject类—hashCode方法
1 package face_object;
2 /*
3 * Object:所有类的根类。
4 * Object是不断抽取而来的,具备所有对象都具备的共性内容。
5 * 常用的共性功能:
6 *
7 *
8 */
9
10 /*class Fu {// extends Object
11 Fu(){
12 super();
13 }
14 }
15 class Zi extends Fu {
16 Zi(){
17 super();
18 }
19 }
20 */
21 class Person extends Object{
22 private int age;
23 Person(int age){
24 this.age = age;
25 }
26 //比较Person的年龄。是否是同龄人
27 /*public boolean compare(Person p) {
28 return this.age == p.age;
29 }*/
30 /*
31 * 一般都会覆盖此方法,根据对象的特有内容,建立判断对象是否相等的依据。
32 */
33 public boolean equals(Object obj) {//重写
34 if(!(obj instanceof Person)) {
35 throw new ClassCastException("类型错误");
36 }
37 Person p = (Person)obj;
38 return this.age == p.age;
39 }
40
41 public int hashCode() {
42 return age;//重写哈希值,以年龄作为哈希值
43 }
44 }
45 class Demo {
46
47 }
48
49
50 public class ObjectDemo {
51 public static void main(String[] args) {
52 Person p1 = new Person(20);
53 Person p2 = new Person(20);
54 Person p3 = p1;
55 Demo d = new Demo();
56 System.out.println(p1==p2);
57 System.out.println(p1.equals(p3));
58 //System.out.println(p1.equals(d));
59 System.out.println(p1);
60 System.out.println(Integer.toHexString(p1.hashCode()));//十进制转十六进制
61
62 }
63 }
64
65 //注意:
66 //当equals方法被重写时,通常有必要重写hashCode方法,以维护hashCode方法的常规协定,该协定声明常规对象必须具备相等的哈希码
67 //不光内容相等 哈希码也要相等 证明对象相等的话。
javaObject类—hashCode方法的更多相关文章
- javaObject类—getClass方法
1 package face_object; 2 /* 3 * Object:所有类的根类. 4 * Object是不断抽取而来的,具备所有对象都具备的共性内容. 5 * 常用的共性功能: 6 * 7 ...
- javaObject类-equals方法及覆盖
1 package face_object; 2 /* 3 * Object:所有类的根类. 4 * Object是不断抽取而来的,具备所有对象都具备的共性内容. 5 * 常用的共性功能: 6 * 7 ...
- JavaSE-28 hashCode()方法、equals()方法和==相关概念
概述 Java中,Object类是所有类的基类:如果一个类没有明确继承其他已定义的类,则默认继承Object类. Object类提供了以下方法,对于其他方法,请参考前期专题描述. hashCode() ...
- Java基础知识强化26:Object类之hashCode()方法、getClass()方法
1. Object类的hashCode()方法,如下: public int hashCode():返回该对象的哈希码值,这个值和地址值有关,但是不是实际地址值(哈希码值是根据实际地址值转化过来的 ...
- 关于Java中String类的hashCode方法
首先来看一下String中hashCode方法的实现源码 public int hashCode() { int h = hash; if (h == 0 && value.lengt ...
- Java基础:Object类中的equals与hashCode方法
前言 这个系列的文章主要用来记录我在学习和复习Java基础知识的过程中遇到的一些有趣好玩的知识点,希望大家也喜欢. 一切皆对象 对于软件工程来说面向对象编程有一套完整的解决方案:OOA.OOD.O ...
- 关于Object类的equals方法和hashCode方法
关于Object类的equals的特点,对于非空引用: 1.自反性:x.equals(x) return true : 2.对称性:x.equals(y)为true,那么y.equals(x)也为tr ...
- 11.JAVA-Object类之finalize(),clone(),toString()等方法覆写
1.Object介绍 Object类是一个特殊的类,是所有类(包括数组,接口 )的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类,所以可以通过向上转型的方法使用 ...
- static,final关键字,Object类的tostring方法,equals方法,hashCode方法
1)static关键字 static可以修饰:属性.方法.代码块 静态方法不能访问非静态 属性 或 方法 属性(变量): 成员变量: 静态变量: 通过 类名.静态变量来访问 通过 对象名.静态变量来访 ...
随机推荐
- Centos使用kafka自带zookeeper安装kafka
首先要安装jdk环境 可以参考:https://www.cnblogs.com/pxblog/p/10512886.html 下载kafka 地址:http://kafka.apache.org/do ...
- 【LeetCode】1415. 长度为 n 的开心字符串中字典序第 k 小的字符串 The k-th Lexicographical String of All Happy Strings of Le
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetcod ...
- 【LeetCode】244. Shortest Word Distance II 解题报告 (C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典保存出现位置 日期 题目地址:https://le ...
- 【LeetCode】430. Flatten a Multilevel Doubly Linked List 解题报告(Python)
[LeetCode]430. Flatten a Multilevel Doubly Linked List 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: ...
- 晴天小猪历险记之Hill(Dijkstra优先队列优化)
描述 这一天,他来到了一座深山的山脚下,因为只有这座深山中的一位隐者才知道这种药草的所在.但是上山的路错综复杂,由于小小猪的病情,晴天小猪想找一条需时最少的路到达山顶,但现在它一头雾水,所以向你求助. ...
- git安装与使用,未完待续... ...
目录 一.git概念 二.git简史 三.git的安装 四.git结构 五.代码托管中心-本地库和远程库的交互方式 六.初始化本地仓库 七.git常用命令 1.add和commit命令 2.sta ...
- SOA 和微服务
====>场景 不可能让客户端与6个不同的应用/系统都一一去通信来去完成数据的展示.而是6个应用/系统之间进行彼此通信来完成调用,最后客户端只需要调用一个接口来获取数据即可. SOA架构 SOA ...
- c#16进制转浮点数单精度类型
c#16进制转浮点数单精度类型: string s = "4144147B"; MatchCollection matches = Regex.Matches(s, @" ...
- Linux远程操作
应用场景 公司开发时候,具体的应用场景是这样的1.linux服务器是开发小组共享 正式上线的项目是运行在公网 因此程序员需要远程登录到Linux进行项目管理或者开发 远程登录客户端有Xshell6,X ...
- Spring @Valid 和 @Validated 的区别和使用
两者区别 @Valid @Validated 标准 标准JSR-303规范 增强JSR-303规范 包 javax.validation org.springframework.validation ...