2016-04-10 9 views
0

私はどこからでもこの質問に対する答えを探していましたが、それが何であるか分かりませんが、かっこ内に変数を持つtoStringメソッドのポイントは何ですか? ?toString(int variable、n)vs toString()

public static String toString(Student[] list, int n) 
    { 

    } 

何らかの理由でこの回答が見つかりません。メソッドを直接呼び出すことはないと思ったので、toStringに入力を提供できるかどうかは分かりませんでした。

答えて

0

toString()は他の方法と同様の方法です。引数を持たないtoString()メソッドは、オブジェクトを出力しようとするときのように、多くのことによって自動的に呼び出されます。しかし、それでもtoString(int variable)という名前の別のメソッドを作成することはできません。そのメソッドは自動的に呼び出されることはありませんが、あなたが書いているプログラムでカスタムの文字列操作をしたい場合は、それを宣言して呼び出すことができます。

+0

よう

何かがあなたがそれとすぐに内部変数を置くよう言っている、あなたの特定のクラスに乗り越え可能あなたがSystem.out.print(class)と言ったときにこのメソッドの宣言を自動的に停止し、それを通常のメソッドとして呼び出すかどうかを指定します。このプロジェクトは、あなたに多くの情報を与えた場合、再帰呼び出しになっています – Submersed24

+0

私は、このメソッドは通常のtoString()メソッドとはまったく関係ないと言っています。 print()ステートメントなどで自動的に呼び出されることはありません。これは、Stringを返す通常のメソッドで、同じ名前を持つことがあります。引数を持たない通常のtoString()メソッドは、print()ステートメントなどで使用するためにjavaによって常に呼び出されます。 – nhouser9

+0

なぜ私の教授がそれをこの名前にしたのか分かりません。普通のStringメソッドについては決して教えていませんでした。) – Submersed24

1

どのようなパラメータどんな方法でも使用できますが、toStringはJavaの多くの内部で使用されている点で特別です。

これは... ではなく、そのtoStringの方法です。 に変更したいものは、のパラメータはまったくありません。パラメータを取り

@Override 
public String toString() { 
    // implementation 
} 

toStringは、オブジェクトが矛盾している自分自身について印刷するための十分な情報を持っていないので、この方法が最善のより適切なものに名前を変更するたいことを意味しています。

0

お客様のtoString()メソッドは、クラスから継承した特殊メソッド@Override public String toString()とはまったく異なります。

今後の混乱を避けるため、メソッド名を変更する必要があると思います。

System.out.println()またはString.valueOf(obj)の間にtoString()メソッドが自動的に呼び出される方法はありますか? マジックはありません!StringクラスのvalueOf()メソッドの実装を参照してください。

public static String valueOf(Object obj) { 
    return (obj == null) ? "null" : obj.toString(); 
} 
+0

私は残念なことに、私の教授が与えられた方法でメソッドを与えましたが、別の名前を付けた場合、彼女はポイントを取ることになります – Submersed24

+0

まあ、それはまったく必須ではありません。しかし、 '' public static String toString() '、つまりparamを使わないで書くと、' 'インスタンスメソッドを隠すことはできません 'のような問題に直面します。 – muzahidbechara

1

のtoString()

public class ToStringEg { 

private Student[] list; 

private int n; 

public ToStringEg(Student[] list, int n) { 
    super(); 
    this.list = list; 
    this.n = n; 
} 

@Override 
public String toString() { 
    StringBuffer buf = new StringBuffer(); 
    // You can access list and v varible required by you 
    //finally create a buf based on your logic 
    return buf.toString(); 
} 

}