重点都在注释里面写了,这里就不再重复叙述,贴上代码到博客主要是备用。

package equals;

class Book extends Object {    private String title;    private double price;

    public Book(String title, double price) {        this.title = title;        this.price = price;    }

    public String toString() {        return "" + this.title + "" + this.price;    }

    public boolean equals(Object obj) {        if (obj == this) {            return true;//传入的对象跟当前对象的地址值一样,说明是同一对象,为真。        }        if (obj == null) {            return false;//传入对象为空        }        if (!(obj instanceof Book)) {            return false;//判断传入的obj对象是否是Book类的实例化对象,如果不是,返回false。        }        Book book = (Book) obj;//向下将obj对象转型为Book类对象。这里是强制转型所以加上(Book)        if (this.title.equals(book.title) && this.price == book.price) {            return true;        }        return false;    }}

public class demo {    public static void main(String[] args) {        Book bookA = new Book("java",78.1);        Book bookB = new Book("java",78.1);        System.out.println(bookA.equals(bookA));    }}

手撸代码实现equals方法的更多相关文章

  1. SpringBoot代码生成器,从此不用手撸代码

    前言 通常在开始开发项目的时候,首先会建立好数据库相关表,然后根据表结构生成 Controller.Service.DAO.Model以及一些前端页面. 如果开发前没有强制的约束,而每个程序员都有自己 ...

  2. 覆盖equals方法时请遵守通用约定

    覆盖equals方法时请遵守通用约定   覆盖equals方法看起来很简单,但是有许多覆盖方式会导致错误,并且后果很严重.最容易避免这种类问题的方法就是不覆盖equals方法,在这种情况下,类的每个实 ...

  3. [改善Java代码]覆写equals方法必须覆写hashCode方法

    覆写equals方法必须覆写hashCode方法,这条规则基本上每个Javaer都知道,这也是JDK API上反复说明的,不过为什么要这样做呢?这两个方法之间有什么关系呢?本建议就来解释该问题,我们先 ...

  4. [改善Java代码]覆写equals方法时不要识别不出自己

    建议45: 覆写equals方法时不要识别不出自己 我们在写一个JavaBean时,经常会覆写equals方法,其目的是根据业务规则判断两个对象是否相等,比如我们写一个Person类,然后根据姓名判断 ...

  5. HashSet——add remove contains方法底层代码分析(hashCode equals 方法的重写)

    引言:我们都知道HashSet这个类有add   remove   contains方法,但是我们要深刻理解到底是怎么判断它是否重复加入了,什么时候才移除,什么时候才算是包括????????? add ...

  6. gcd手写代码及STL中的使用方法

    一.手写代码 inline int gcd(int x,int y){ if(y==0) return x; else return(gcd(y,x%y)); } 二.STL中的使用方法 注:在STL ...

  7. java代码equals方法

    package com.bc; public class Test_6 { // 我们知道java中的每个类都继承自Object类,equals是Object方法之一 String name; int ...

  8. 使用Java Socket手撸一个http服务器

    原文连接:使用Java Socket手撸一个http服务器 作为一个java后端,提供http服务可以说是基本技能之一了,但是你真的了解http协议么?你知道知道如何手撸一个http服务器么?tomc ...

  9. 99%的程序员都在用Lombok,原理竟然这么简单?我也手撸了一个!|建议收藏!!!

    罗曼罗兰说过:世界上只有一种英雄主义,就是看清生活的真相之后依然热爱生活. 对于 Lombok 我相信大部分人都不陌生,但对于它的实现原理以及缺点却鲜为人知,而本文将会从 Lombok 的原理出发,手 ...

随机推荐

  1. JFinal框架

    FJinal过滤器(tomcat) 创建java类继承JFinalConfig 会实现六个方法(有一个是拦截器的方法好像是,那个我好像看的跟struts2一样但是又没看懂暂时不写) Controlle ...

  2. python导入.py文件

    1.from . import D # 导入A.B.D 2.from .. import E # 导入A.E 3.from ..F import G # 导入A.F.G,.. 和 F是连着的,中间没有 ...

  3. 目标检测方法——R-FCN

    R-FCN论文阅读(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 目录 作者及相关链接 方法概括 方法 ...

  4. mysql数据库设计三范式

    为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际 ...

  5. IO流(二)

    二.File类 概述 文件和目录路径名的抽象表示形式 构造方法 public File(String pathname) public File(String parent,String child) ...

  6. 2018-2019-20175205实验二面向对象程序设计《Java开发环境的熟悉》实验报告

    2018-2019-20175205实验二面向对象程序设计<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>< ...

  7. SlidingMenu第三篇 --- SlidingMenu使用介绍

    在Activity中通过SlidingMenu的构造方法,直接设置侧滑菜单 public class Main2Activity extends Activity { @Override protec ...

  8. Android界面跳转几种情况

    Android界面简单跳转, Intent intent =new Intent(MainActivity.this,SecondActivity.class); startActivity(inte ...

  9. C# WMI通过网络连接名称获取IP掩码网关

    /// <summary> /// 读取IP,掩码,网关地址 /// </summary> /// <param name="netConnectorName& ...

  10. Thinking in work

    Scheduler? Realtime? sure SCI? Power supply and ECU life. how to assure? EMC?