解釋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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP