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);

并期望弹出一条消息..

我的问题是如何做到这一点?我是否完全认为必须实例化的类不能有返回值?我只能认为我需要在类中返回消息并自动调用的方法,类似于 main 但不是静态的。我是朝着正确的方向前进还是完全偏离了基地?请告知我已经阅读了一整天,我担心此时我无法只见树木不见森林。我确定它很简单。

先感谢您。

4

1 回答 1

4

你会想要覆盖Object.toString().

在上面的打印语句中,println()-method 在内部调用toString()给定对象的-method。可以覆盖此方法以返回有意义的内容。例如:

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