我有一个程序,需要编写一个类文件来使其运行,并且我不能更改原始程序(一个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但不是静态的。我是朝正确的方向前进还是完全偏离基地?请注意,我整天都在读书,我担心此时看不到森林。我肯定这很简单。

先感谢您。

最佳答案

您将要覆盖Object.toString()

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

@Override
public String toString(){
  return "My var1-field has a value of: "+this.var1;
}

09-25 21:04