文档章节

Equals重写

马嘉涛
 马嘉涛
发布于 2016/08/01 17:42
字数 176
阅读 6
收藏 0

package EqualsProject;

 

public class Student {
 private String name;
 private int age;
    public Student() {}
    public Student(String name, int age) {
     this.name = name;
     this.age = age;
    }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 //以下为编译器自动生成
 //@Override
 /*public boolean equals(Object obj) {
  if (this == obj)
   return true;
  if (obj == null)
   return false;
  if (getClass() != obj.getClass())
   return false;
  Student other = (Student) obj;
  if (age != other.age)
   return false;
  if (name == null) {
   if (other.name != null)
    return false;
  } else if (!name.equals(other.name))
   return false;
  return true;
 }*/
 //以下为改进版
 public boolean equals(Object obj){
  if(this == obj) return true;
  if(obj == null) return false;
  if(getClass() != obj.getClass()) return false;
  Student other = (Student) obj;
  return this.name.equals(other.name) &&  this.age == other.age;
 }
}

public class StudentTest {
public static void main(String[] args) {
 Student s1= new Student("aa",13);
 Student s2= new Student("aa",13);
 Student s3= new Student("bb",13);
 System.out.println(s1.equals(s2));
 System.out.println(s1.equals(s3));
}
}

 

 

© 著作权归作者所有

共有 人打赏支持
上一篇: toString方法
下一篇: 抽象类的实现
马嘉涛
粉丝 0
博文 12
码字总数 1906
作品 0
济南
私信 提问
Java 中正确使用 hashCode 和 equals 方法

在这篇文章中,我将告诉大家我对hashCode和equals方法的理解。我将讨论他们的默认实现,以及如何正确的重写他们。我也将使用Apache Commons提供的工具包做一个实现。 目录: hashCode()和equ...

王振威
2012/10/21
64.9K
43
java基础:==和equals方法区别

equals()和“==”操作用于对象的比较,检查俩对象的相等性,但是他们俩的主要区别在于前者是方法后者是操作符。由于java不支持操作符重载(overloading),“==”的行为对于每个对象来说与equ...

watermelon11
02/23
0
0
equals和hashCode的区别和联系

一、前言 前段时间使用list.remove(obj)的时候重写了obj的equals方法,因为list的remove是以equals来判断标准的。但是,今天被公司的代码扫描工具提示未重写hashCode方法!!之前准备面试时也...

叫我宫城大人
2017/08/23
0
0
hashcode()和equals()的是是非非

我们在很多博客的文章当中,我们都看到这样一句话:在重写equals方法的同时一定要重写hashCode方法。这是为什么?很多人会说,我的业务代码,只用equals比较比较两个对象是否相等不就可以了,...

似是而非Sage
2016/08/18
23
0
why在重写equals时还必须重写hashcode方法

首先我们先来看下String类的源码:可以发现String是重写了Object类的equals方法的,并且也重写了hashcode方法 public boolean equals(Object anObject) { if (this == anObject) { return tr...

Vincent-Duan
2016/10/29
5
0

没有更多内容

加载失败,请刷新页面

加载更多

js算法总结

数列求和 等差数列求和 function sum(a0,d,n){//a0->首项,d->公差,n->项数//(首项+末项)*项数/2return (a1+(a1+d*n))*n/2;} 等比数列求和 function sum(a0,q,n){//a0->首项,q->公......

祖达
31分钟前
1
0
小白?转型?毕业生?外行学习快速入行大数据开发指南

这篇文章中,本文将针对三种不同的、想要进入数据科学领域的人群,给出自己的经验,帮助他们迅速有效入行。 虽然没有适合每个人的万能解决方案,但这三类建议值得想转行的你一看。 第1类:新...

董黎明
38分钟前
0
0
好文 | MySQL 索引B+树原理,以及建索引的几大原则

MySQL事实上使用不同的存储引擎也是有很大区别的,下面猿友们可以了解一下。 一、存储引擎的比较 注:上面提到的B树索引并没有指出是B-Tree和B+Tree索引,但是B-树和B+树的定义是有区别的。 ...

Java爬坑之路
41分钟前
1
0
mysql group by 和 Order By 执行顺序

1.在写统计的时候,我们会用到统计首单,这样里面设计到排序。写子查询的方式当然可以实现, 但是我们有时候,需要创建视图,视图不支持带子查询的。 加了排序后会返回,排序后的哪个第一条数...

kuchawyz
46分钟前
2
0
Spring Boot 2.X 如何添加拦截器?

最近使用SpringBoot2.X搭建了一个项目,大部分接口都需要做登录校验,所以打算使用注解+拦截器来实现,在此记录下实现过程。 一、实现原理 1. 自定义一个注解@NeedLogin,如果接口需要进行登...

花漾年华
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部