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可以修饰:属性.方法.代码块 静态方法不能访问非静态 属性 或 方法 属性(变量): 成员变量: 静态变量: 通过 类名.静态变量来访问 通过 对象名.静态变量来访 ...
随机推荐
- springboot目录结构、重要配置文件、重要注解的详解
前面2篇博客已经带着大家搭建了springboot项目,并编写了持久化接口部署到tomcat下访问.这里我们一起补充下springboot的基本信息 一.springboot简单介绍 springbo ...
- 【LeetCode】277. Find the Celebrity 解题报告 (C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 暴力 日期 题目地址:https://leetcode ...
- 【LeetCode】840. Magic Squares In Grid 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 利用河图规律 暴力解法 日期 题目地址:https: ...
- Autofac 依赖注入小知识
Autofac 依赖注入小知识 控制反转/依赖注入 IOC/DI 依赖接口而不依赖于实现,是面向对象的六大设计原则(SOLID)之一.即依赖倒置原则(Dependence Inversion Prin ...
- leetcode日记本
写在前面: 2019.6开始经过一年的学习,我依然没有学会算法,依然停留在最基本的阶段,面对题目依然一头雾水 但是难不是放弃的理由,根据毛主席的论持久战原理,我决定一天看一点循序渐进,相信总有一天可以 ...
- EBGAN
目录 概 主要内容 Zhao J., Mathieu M. & LeCun Y. Energy-based generative adversarial networks. ICLR, 201 ...
- What is being transferred in transfer learning?
目录 概 主要内容 feature reuse mistakes and feature similarity loss landscape module criticality pre-traine ...
- 【jvm】02-手写自己的类加载器
[jvm]02-手写自己的类加载器 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞.加个 ...
- 过年有燃放烟花爆竹禁令那我们用css写一个仙女棒烟花看看吧
先是去找了一张简易画的烟花照片,可以看出主要结构为歪曲的线条结构. 方案一: 弯曲的线条第一反应到的就是"圆角边框": width: 200px; height: 200px; b ...
- InnoDB学习(八)之 聚簇索引
InnoDB中,表数据文件本身就是以主键为索引的B+树,树的叶子节点存放一条条表数据,此索引树被称为表的聚簇索引.聚簇索引也称为聚集索引,聚类索引,簇集索引,聚簇索引确定表中数据的物理顺序. Inno ...