当前位置: 代码迷 >> Java相关 >> equals()步骤
  详细解决方案

equals()步骤

热度:601   发布时间:2016-04-22 19:56:04.0
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 false18 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()返回true10         System.out.println(a1.equals(a2));11         //a1和a3不是同一个对象,equals()返回true12         System.out.println(a3.equals(a1));13     }14 }15 16 结果:17 true18 true
View Code

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

1楼偏执的青椒
大二的时候学过的,很基础但是很不错,记录的不错,支持个
  相关解决方案