equals方法重写
在java中常见的equals方法的重写:
举例:一个自定义类ball如下
public class Ball {
private String name;
private int weight;
public Ball(String name,int weight){
this.name = name;
this.weight = weight;
}
}
我们可以这样重写equals方法:
public boolean equals(Object obj){
if(obj == null){
return false;
}else{
if(obj instanceof Ball){
Ball ball = (Ball)obj;
if(this.name == ball.name&&this.weight==ball.weight){
return true;
}
}
}
return false;
}
另有更简介方法如下:
public boolean equals(Object obj){
if(obj instanceof Ball){
Ball ball = (Ball)obj;
return this.name==ball.name&&this.weight==ball.weight)
else{
return super.equals(obj);
}
}
更严谨的写法:
public boolean equals(Object obj){
if(obj instanceof Ball){
Ball ball = (Ball)obj;
return this.name.equals(obj.name)&&
this.weight.equals(ball.weight);
else{
return super.equals(obj);
}
}
相比较上面两种,第三种更为严谨。
equals方法重写的更多相关文章
- 用HashSet的add方法谈hashcode和equals方法重写
本文主要通过用HashSet的add方法讲一下hashCode和equals方法重写.错误的地方望指正. 1.了解HashSet的add方法 了解一个方法的好办法是看源码,所以先看源码 private ...
- java中的equals()方法重写
如何java中默认的equals方法跟实际不符的话,需要重写equals方法.例如: public class TestEquals { public static void main(String[ ...
- 接口、抽象类、方法复写、类Equals方法重写
接口: /* * Java接口中的數據成員必須初始化,該成員有隱藏的final.satic.常量, * 一次賦值后不可在賦值 * 成員方法訪問修飾符必須是公共修飾符,可以顯示聲明也可以不聲明 * 成員 ...
- Effective Java 第三版——10. 重写equals方法时遵守通用约定
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- Java中equals和==的区别?为什么重写equals方法后,一定要重写hashCode方法?
首先明确一点,equals是方法,==是操作符. 1. 如果比较的是基本数据类型: 只讨论==,因为equals是不存在的,因为java中基本数据类型不能调用method的. 2. 如果比较的是引用类 ...
- 重写equals方法需要知道的事
重写equals方法 相信在每个人都有过重写过java的equals的方法的经历.这篇博文就从以下几个方面说明重写equals方法的原由,与君共进步. 一 为什么要重写equals方法 首先我们了解e ...
- [转]java基础学习总结——equals方法
一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class TestEquals { 4 public s ...
- equals方法
一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 package cn.galc.test; public class TestEquals { public static vo ...
- java equals()方法
java基础学习总结--equals方法 一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class Te ...
随机推荐
- mintUI修改toast样式的问题解决办法
在公共样式中加入 /*修改mintUI 弹窗样式大小*/ .noticeErrorToast{ transform: scale(2) !important; margin-left:-.6rem ! ...
- 一键部署YApi
编写docker-compose.yml version: '2.1' services: yapi: image: mrjin/yapi:latest # build: ./ container_n ...
- C# 对象转JSON字符串
对象转JSON字符串 /// <summary> /// 对象转Json字符串 /// </summary> /// <param name="obj" ...
- wxstring与其他类型转换
wxstring与其他类型转换 1.1 int to wxString: wxString str = wxString::Format(wxT("%i"),myInt); 1.2 ...
- 微信小程序(12)--倒计时
记录一个常见的效果,倒计时. <text>倒计时:{{content}}</text> Page({ /** * 页面的初始数据 */ data: { endTime: '', ...
- zabbix入门之定义触发器
zabbix入门之定义触发器 触发器的概念 触发器的定义:界定某特定的item 采集到数据的非合理区间或非合理状态.通常为逻辑表达式. 逻辑表达式(阈值):通常用于定义数据的不合理区间,其结果如下: ...
- css: IE没法调整那些使用px作为单位的字体大小
<style type="text/css"> h1{font-size:40px;} h3{font-size:30px;} p{font-size:14xp;} & ...
- bzoj3717 [PA2014]Pakowanie 贪心+状压DP
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3717 题解 这道题大概也就只能算常规的状压 DP 吧,但是这个状态和转移的设计还是不是很好想. ...
- Ubunu12.04 vncserver xstartup配置文件
以下有效: #!/bin/sh # Uncomment the following two lines for normal desktop: unset SESSION_MANAGER #exec ...
- 【leetcode】1023. Camelcase Matching
题目如下: A query word matches a given pattern if we can insert lowercaseletters to the pattern word so ...