1

プログラムを実行するためにクラス ファイルを作成する必要がありますが、元のプログラム (Java ファイル) を変更できません。

私が変更できないJavaファイルは、クラスのいくつかのバージョンをインスタンス化します。

CrazyClass crazy1 = new CrazyClass();
CrazyClass crazy2 = new CrazyClass();
CrazyClass crazy3 = new CrazyClass();
//more code follows

次に、新しくインスタンス化されたクラスに変数を次のように設定します。

crazy1.var1 = 6;
crazy2.var1 = 7;
crazy3.var1 = 8;
//more code follows

その後、プログラムは実際にこれらのインスタンス化されたクラスを次のような println ステートメントで呼び出します。

System.out.println(crazy1);

メッセージが飛び出すことを期待しています..

私の質問は、どうすればこれを実現できますか? インスタンス化する必要があるクラスが戻り値を持つことができないと考えるのは、完全に根拠がありませんか? メッセージを返し、自動的に呼び出されるクラス内のメソッドが必要だとしか思えません。メインのようなものですが、静的ではありません。私はここで正しい方向に向かっていますか、それとも完全に基地から外れていますか? 私は一日中読んでいましたが、現時点では木を見て森を見ることができないのではないかとアドバイスしてください. シンプルなものだと確信しています。

前もって感謝します。

4

1 に答える 1

4

オーバーライドする必要がありますObject.toString()

上記の print-statement では、 -methodは指定されたオブジェクトprintln()の -method を内部的に呼び出します。toString()このメソッドを上書きして、意味のあるものを返すことができます。例えば:

@Override
public String toString(){
  return "My var1-field has a value of: "+this.var1;
}
于 2012-07-22T13:43:44.680 に答える