equals()方法是根类Object中的一个方法,子类可以根据需要重写该方法(比如:String类)。

一、Object类中的equals()方法实现如下:

     public boolean equals(Object obj) {
return (this == obj);
}

例子:

 package com.mianshi.easy;

 class A{}

 public class Equals {

     public static void main(String[] args) {
A a1 = new A();
A a2 = new A();
A a3 = a2;
System.out.println(a1.equals(a2));
System.out.println(a3.equals(a2));
}
} 结果:
false
true

类A默认继承自Object类,所以具有父类中的public修饰的的equals()方法,并且功能相同。

该方法实现的功能是比较两个对象是否是同一个对象,是同一个对象回true,否则,返回false。equals()比较的是obj存放的对象的地址值,这一点跟“==”一样。

二、String类的中的equals()方法实现如下:

  public boolean equals(Object anObject) {
if (this == anObject) {              //先比较两个对象是否为同一个对象
return true;
}
if (anObject instanceof String) {  
String anotherString = (String)anObject;  
int n = value.length;
if (n == anotherString.value.length) {   //比较两个对象的值是否相同,值相同equals()返回true
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}

例子:

 package com.mianshi.easy;

 public class Equals {

     public static void main(String[] args) {
String a1 = new String("Hello");
String a2 = new String("Hello");
String a3 = "Hello";
//a1和a2明显不是一个对象,但是equals()返回true
System.out.println(a1.equals(a2));
//a1和a3不是同一个对象,equals()返回true
System.out.println(a3.equals(a1));
}
} 结果:
true
true

说明String类里面重写了父类Object类的equals()方法,重写后比较的是两个String对象的内容是否相同,相同则为true。

equals()方法的更多相关文章

  1. List<T>Find方法,FindAll方法,Contains方法,Equals方法

    假如传入的T是一个类, List<MessageInfos> MessageInfos = new List<MessageInfos>(); MessageInfos= Me ...

  2. [java] 更好的书写equals方法-汇率换算器的实现(4)

    [java] 更好的书写equals方法-汇率换算器的实现(4) // */ // ]]>   [java] 更好的书写equals方法-汇率换算器的实现(4) Table of Content ...

  3. java中的equals()方法重写

    如何java中默认的equals方法跟实际不符的话,需要重写equals方法.例如: public class TestEquals { public static void main(String[ ...

  4. java提高篇(十三)-----equals()方法总结

    equals() 超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等.该方法的源码如下: public boolean equals(Object obj) { retu ...

  5. Java中“==”与equals方法的区别

    1. 用“==”比较两个变量,如果两个变量是基本类型变量,且都是数值类,则值相等就返回true 如果两个变量是引用型变量,则两个对象的地址一样,即指向同一个对象,则返回true 2.equals:St ...

  6. C#中==与Equals方法的区别

    using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Console ...

  7. java重写equals方法

    @Override public int hashCode() { return task.getId(); } @Override public boolean equals(Object obj) ...

  8. 重写Object类中的equals方法

    Object是所有类的父亲,这个类有很多方法,我们都可以直接调用,但有些方法并不适合,例如下面的student类 public class Student { //姓名.学号.年纪 private S ...

  9. java中hashCode方法与equals方法的用法总结

    首先,想要明白hashCode的作用,必须要先知道Java中的集合. 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set. 前者集合内的元素是有序的,元素可以重 ...

随机推荐

  1. JavaScript之旅(DOM)

    JavaScript之旅(DOM) [TOC] 一.认识DOM 什么是 DOM? DOM 是 Document Object Model(文档对象模型)的缩写. DOM 是 W3C(万维网联盟)的标准 ...

  2. C# 代码编程规范

    1.       类一定要有注释 2.       C#代码要用#region包起来,#region之间要留一个且只留一个空行 3.       含义复杂不容易看懂的参数要写注释 4.       方 ...

  3. c++控制台程序实现定时器

    #include "stdafx.h" #include <iostream> #include <Windows.h> using namespace s ...

  4. 调整 FMX Android 文字显示「锯齿」效果

    说明:调整 Firemonkey Android 显示文字有「锯齿」效果 适用:Firemonkey Android 平台 修改方法: 请将源码 FMX.FontGlyphs.Android.pas  ...

  5. Android开发中Eclispe相关问题及相应解决(持续更新)

    1.Eclipse项目中的Android Private Libraries没有自动生成. 一般而言,在Android开发中,项目中引用到的jar包会放到项目目录中的libs中,引入库会放到Andro ...

  6. NHibernate可视化设计插件——Mindscape.NHibernateModelDesigner

    我一直希望NHibernate能够支持像EF一样支持可视化操作,今天去网上搜了一下,发现有一个插件,类似EF的可视化功能. 下载地址:Mindscape.NHibernateModelDesigner ...

  7. WinForm 窗体应用程序(进阶)之一

    进程: 进程,简单的说,就是让你的程序启动另一个程序. 1.Process.Start("calc");//启动计算器 弊端:只认识系统自带的程序,如果写错系统会崩溃. 2. // ...

  8. Sequence.js 实现带有视差滚动特效的图片滑块

    Sequence.js 功能齐全,除了能实现之前分享过的现代的图片滑动效果,还可以融合当前非常流行的视差滚动(Parallax Scrolling)效果.让多层背景以不同的速度移动,形成立体的运动效果 ...

  9. php代码美化/格式化 还原 -问题

    使用某个PHP代码格式化的工具.源代码: if ($this->_standardize_newlines == TRUE) { if (strpos($str, "\r") ...

  10. 每次点击按钮后,判断页面是否已经有该行,没有弹出repeater的一行,并给他赋一个这行附值,没有则跳出

    protected void btnAdd_click(object sender, EventArgs e) { try { //记录第几次追加 pressCount++; typeString.A ...