解釋Object、String和StringBuffer類的equals()方法。


為了比較兩個物件,Object類提供了一個名為equals()的方法,此方法接受一個物件並將其與當前物件進行比較。如果這兩個物件的引用相等,則返回true;否則,此方法返回false。

示例

在下面的示例中,我們有一個名為Employee的類,它有兩個變數name(姓名)、age(年齡)和一個引數化建構函式。

在main方法中,我們透過傳遞相同的值來建立兩個物件,並使用**equals()**方法比較這兩個值。

由於Object類的**equals()**方法僅在兩個物件的引用相等時才返回true,因此此程式返回false。

 線上演示

import java.util.Scanner;
class Employee {
   private String name;
   private int age;
   Employee(String name, int age){
      this.name = name;
      this.age = age;
   }
}
public class EqualsExample {
   public static void main(String[] args) {
      Scanner sc =new Scanner(System.in);
      System.out.println("Enter your name ");
      String name = sc.next();
      System.out.println("Enter your age ");
      int age = sc.nextInt();
      Employee emp1 = new Employee(name, age);
      Employee emp2 = new Employee(name, age);
      //Comparing the two objects
      boolean bool = emp1.equals(emp2);
      System.out.println(bool);
   }
}

輸出

Enter your name
Krishna
Enter your age
20
false

String類的equals()方法

String類的equals()方法與Object類的equals()方法不同。它被重寫了,此方法接受一個String值,並將其與當前物件進行比較,只有當兩個String物件中的字元序列完全相同時,才返回true。

示例

在下面的示例中,我們從使用者那裡接受值,建立兩個String物件,並使用equals()方法比較它們,然後顯示結果。

由於equals方法只有在您輸入相同的字元序列時才返回true。您需要輸入相同的值才能列印true。

 線上演示

import java.util.Scanner;
public class StringEquals {
   public static void main(String[] args) {
      Scanner sc =new Scanner(System.in);
      System.out.println("Enter a name ");
      String name1 = sc.next();
      System.out.println("Enter another name ");
      String name2 = sc.next();
      //Comparing the two objects
      boolean bool = name1.equals(name2);
      System.out.println(bool);
   }
}

輸出

Enter a name
Krishna
Enter another name
Krishna
true

StringBuffer類的equals()方法

但是,與String類不同,StringBuffer沒有重寫equals()方法。其功能與Object類中的相同。

因此,要獲得true,您需要使用equal方法比較指向相同值的引用。

示例

 線上演示

import java.util.Scanner;
public class StringEquals implements Cloneable{
   public static void main(String[] args) {
      Scanner sc =new Scanner(System.in);
      System.out.println("Enter a name ");
      StringBuffer name1 = new StringBuffer(sc.next());
      StringBuffer name2 = name1;
      //Comparing the two objects
      boolean bool = name1.equals(name2);
      System.out.println(bool);
   }
}

輸出

Enter a name
krishna
true

更新於:2020年6月29日

4K+ 瀏覽量

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.