zoukankan      html  css  js  c++  java
  • equals()方法

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

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

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

    例子:

     1 package com.mianshi.easy;
     2 
     3 class A{}
     4 
     5 public class Equals {
     6 
     7     public static void main(String[] args) {
     8         A a1 = new A();
     9         A a2 = new A();
    10         A a3 = a2;
    11         System.out.println(a1.equals(a2));
    12         System.out.println(a3.equals(a2));
    13     }
    14 }
    15 
    16 结果:
    17 false
    18 true
    View Code

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

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

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

     1  public boolean equals(Object anObject) {
     2         if (this == anObject) {              //先比较两个对象是否为同一个对象
     3             return true;
     4         }
     5         if (anObject instanceof String) {  
     6             String anotherString = (String)anObject;  
     7             int n = value.length;
     8             if (n == anotherString.value.length) {   //比较两个对象的值是否相同,值相同equals()返回true
     9                 char v1[] = value;
    10                 char v2[] = anotherString.value;
    11                 int i = 0;
    12                 while (n-- != 0) {
    13                     if (v1[i] != v2[i])
    14                         return false;
    15                     i++;
    16                 }
    17                 return true;
    18             }
    19         }
    20         return false;
    21     }

    例子:

     1 package com.mianshi.easy;
     2 
     3 public class Equals {
     4 
     5     public static void main(String[] args) {
     6         String a1 = new String("Hello");
     7         String a2 = new String("Hello");
     8         String a3 = "Hello";
     9         //a1和a2明显不是一个对象,但是equals()返回true
    10         System.out.println(a1.equals(a2));
    11         //a1和a3不是同一个对象,equals()返回true
    12         System.out.println(a3.equals(a1));
    13     }
    14 }
    15 
    16 结果:
    17 true
    18 true
    View Code

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

  • 相关阅读:
    Hadoop常用命令介绍
    hadoop异常: java.io.EOFException: Unexpected end of input stream
    Python操作MySQL
    Python常用模块安装
    pyenv激活虚拟环境失败
    Jarvis OJ A Piece Of Cake
    JarvisOJ BASIC 德军的密码
    JarvisOJ BASIC -.-字符串
    HDU 1003 Max Sum
    洛谷 P2119 魔法阵
  • 原文地址:https://www.cnblogs.com/gongxing/p/4663765.html
Copyright © 2011-2022 走看看