Java - Character.Subset equals() 方法



Java 的 Character.Subset equals() 方法用於比較兩個 Subset 物件是否相等。只有當 this 物件和引數物件的引用相同,該方法的結果才為 true

由於我們使用 final 訪問修飾符修飾此方法,因此 Subset 類所有子類的返回值都將保證相同。

注意 - 此方法使用繼承的概念來建立 Subset 物件,因為 Character.Subset 類中的建構函式具有受保護的訪問許可權。因此,Character.Subset 類擴充套件自另一個公共類,該類的建構函式使用 super() 方法呼叫建立物件的 Object 類。

語法

以下是 Java Character.Subset equals() 方法的語法

public final boolean equals(Object obj)

引數

  • obj - 這是要比較的引用物件。

返回值

如果此物件與 obj 引數相同,則此方法返回 true,否則返回 false。

比較 Subset 物件是否相等的示例

在下面的示例中,我們例項化 CharacterSubsetDemo 類物件。然後在這些物件上呼叫 Java Character.Subset equals() 方法以檢查它們是否相等。

package com.tutorialspoint;

public class CharacterSubsetDemo extends Character.Subset {
  
   // constructor of super class
   CharacterSubsetDemo(String s) {
      super(s); // invokes the immediate parent class: Object
   }
   public static void main(String[] args) {
      CharacterSubsetDemo obj1 = new CharacterSubsetDemo("admin");
      CharacterSubsetDemo obj2 = new CharacterSubsetDemo("webmaster");
      CharacterSubsetDemo obj3 = new CharacterSubsetDemo("administrator");

      // compares Subset objects for equality
      boolean retval = obj1.equals(obj1);
      System.out.println("Object obj1 is equal to obj1 ? " + retval);
      retval = obj2.equals(obj1);
      System.out.println("Object obj1 is equal to obj2 ? " + retval);
      retval = obj3.equals(obj1);
      System.out.println("Object obj1 is equal to obj3 ? " + retval);
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Object obj1 is equal to obj1 ? true
Object obj1 is equal to obj2 ? false
Object obj1 is equal to obj3 ? false

比較相同的 Subset 物件是否相等的示例

另一個示例,使用 equals() 方法檢查兩個給定的 Subset 物件(一個物件引用另一個 Subset 物件)是否相等,如下所示。

package com.tutorialspoint;

public class CharacterSubsetDemo extends Character.Subset {
  
   // constructor of super class
   CharacterSubsetDemo(String s) {
      super(s); // immediate parent class invoked to create object
   }
   public static void main(String[] args) {
      CharacterSubsetDemo obj1 = new CharacterSubsetDemo("admin");
      CharacterSubsetDemo obj2 = obj1;

      // compares Subset objects for equality
      boolean val = obj2.equals(obj1);
      System.out.println("Object 1 is equal to Object 2 ? " + val);
   }
}

輸出

讓我們編譯並執行上面的程式,輸出顯示為:

Object 1 is equal to Object 2 ? true

比較不同的 Subset 物件是否相等的示例

以下另一個示例展示了 Java Character.Subset equals() 方法的工作原理。兩個不同的 Subset 物件使用相同的字串值例項化;在這些物件上呼叫該方法以檢查它們是否相等。由於物件引用不同,即使它們包含相同的值,該方法也會返回 false。

package com.tutorialspoint;

public class CharacterSubsetDemo extends Character.Subset {   
   CharacterSubsetDemo(String s) {
      super(s);
   }
   public static void main(String[] args) {
      CharacterSubsetDemo obj1 = new CharacterSubsetDemo("23AS&%");
      CharacterSubsetDemo obj2 = new CharacterSubsetDemo("23AS&%");

      // compares Subset objects for equality
      boolean value = obj2.equals(obj1);
      System.out.println("Object 1 is equal to Object 2 ? " + value);
   }
}

輸出

一旦我們編譯並執行上面的程式,輸出將顯示如下。即使字串名稱相同,輸出也為 false:

Object 1 is equal to Object 2 ? false

比較 Subset 物件與 Null 是否相等的示例

以下示例展示了當物件引數作為 null 傳遞給該方法時的用法:

public class CharacterSubsetDemo extends Character.Subset {    
   CharacterSubsetDemo(String s) {
      super(s);
   }
   public static void main(String[] args) {
      CharacterSubsetDemo obj1 = new CharacterSubsetDemo(null);
      CharacterSubsetDemo obj2 = new CharacterSubsetDemo("23AS&%");

      // compares Subset objects for equality
      boolean res_value = obj2.equals(obj1);
      System.out.println("Object 1 is equal to Object 2 ? " + res_value);
   }
}

異常

程式編譯並執行後,輸出將列印以下 NullPointerException:

Exception in thread "main" java.lang.NullPointerException: nameat java.lang.Character$Subset.<init>(Character.java:615)
   at CharacterSubsetDemo.<init>(CharacterSubsetDemo.java:6)
   at CharacterSubsetDemo.main(CharacterSubsetDemo.java:11)
java_lang_character.subset.htm
廣告

© . All rights reserved.