Java で tostring メソッドをオーバーライドするコード例

黄舟
リリース: 2017-10-12 10:41:56
オリジナル
2242 人が閲覧しました

この記事では主に Java の tostring メソッドの書き換えコード例を紹介します。これは、必要な友人がそれについて学ぶことができます。

オブジェクトをディスプレイに出力する必要がある場合、通常、オブジェクトの内容を文字列に変換するためにその toString() メソッドが呼び出されます。Java のすべてのクラスには、デフォルトで toString() メソッドがあります

デフォルトのシステムでは。 .out.println (オブジェクト名) または System.out.println (オブジェクト名.toString()) は、このオブジェクトのクラス名と、このオブジェクトに対応するメモリの先頭アドレスを出力します。 出力情報をカスタマイズしたい場合は、 toString() メソッド

Notes

1 を書き換える必要があります。 public


2 として宣言する必要があります。メソッドの名前は String


3 である必要があります。


4. メソッド本体では、出力メソッド System.out.println() を使用しないでください


import java.util.*; 
public class TreeSetTest { 
  /** 
   * @param args 
   */ 
  public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    SortedSet<Item> parts=new TreeSet<Item>(); 
    parts.add(new Item("Toaster", 1234)); 
    parts.add(new Item("Widget", 4562)); 
    parts.add(new Item("Modem", 9912)); 
    System.out.println(parts); 
    SortedSet<Item> sortByDescription=new TreeSet<Item>(new  
        Comparator<Item>() 
        { 
          public int compare(Item a, Item b) 
          { 
            String descrA=a.getDescription(); 
            String descrB=b.getDescription(); 
            return descrA.compareTo(descrB); 
          } 
        }); 
    sortByDescription.addAll(parts); 
    System.out.println(sortByDescription); 
  } 
} 
class Item implements Comparable<Item> 
{ 
  public Item(String aDescription, int aPartNumber) 
  { 
    description=aDescription; 
    partNumber=aPartNumber; 
  } 
  public String getDescription() 
  { 
    return description; 
  } 
  public boolean equals(Object otherObject) 
  { 
    if(this==otherObject) 
      return true; 
    if(otherObject==null) 
    { 
      return false; 
    } 
    if (getClass()!=otherObject.getClass()) 
    { 
      return false; 
    } 
    Item other=(Item)otherObject; 
    return description.equals(other.description)&& 
        partNumber==other.partNumber; 
  } 
  public int hashCode() 
  { 
    return 13*description.hashCode()+17*partNumber; 
  } 
  public int compareTo(Item other) 
  { 
    return partNumber-other.partNumber; 
  } 
  private String description; 
  private int partNumber; 
}
ログイン後にコピー

出力は次のようになります:



[Item@8c9e3a56, Item@d780c206, Item@39c021ba]
[Item@39c021ba, Item@8c9e3a56, Item@d780c206]
ログイン後にコピー

Item

toString() メソッドをオーバーロードした後:

import java.util.*; 
public class TreeSetTest { 
  /** 
   * @param args 
   */ 
  public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    SortedSet<Item> parts=new TreeSet<Item>(); 
    parts.add(new Item("Toaster", 1234)); 
    parts.add(new Item("Widget", 4562)); 
    parts.add(new Item("Modem", 9912)); 
    System.out.println(parts); 
    SortedSet<Item> sortByDescription=new TreeSet<Item>(new  
        Comparator<Item>() 
        { 
          public int compare(Item a, Item b) 
          { 
            String descrA=a.getDescription(); 
            String descrB=b.getDescription(); 
            return descrA.compareTo(descrB); 
          } 
        }); 
    sortByDescription.addAll(parts); 
    System.out.println(sortByDescription); 
  } 
} 
class Item implements Comparable<Item> 
{ 
  public Item(String aDescription, int aPartNumber) 
  { 
    description=aDescription; 
    partNumber=aPartNumber; 
  } 
  public String getDescription() 
  { 
    return description; 
  } 
  public String toString() 
  { 
    return "[description="+description 
        +",partNumber="+partNumber+"]"; 
  } 
  public boolean equals(Object otherObject) 
  { 
    if(this==otherObject) 
      return true; 
    if(otherObject==null) 
    { 
      return false; 
    } 
    if (getClass()!=otherObject.getClass()) 
    { 
      return false; 
    } 
    Item other=(Item)otherObject; 
    return description.equals(other.description)&& 
        partNumber==other.partNumber; 
  } 
  public int hashCode() 
  { 
    return 13*description.hashCode()+17*partNumber; 
  } 
  public int compareTo(Item other) 
  { 
    return partNumber-other.partNumber; 
  } 
  private String description; 
  private int partNumber; 
}
ログイン後にコピー

出力は次のとおりです:


[[description=Toaster,partNumber=1234], [description=Widget,partNumber=4562], [description=Modem,partNumber=9912]]
[[description=Modem,partNumber=9912], [description=Toaster,partNumber=1234], [description=Widget,partNumber=4562]]
ログイン後にコピー

概要

以上がJava で tostring メソッドをオーバーライドするコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート