在一个充满非静态变量的类中自动运行方法

时间:2012-07-22 13:41:17

标签: java

我有一个程序,需要编写一个类文件才能运行它,我无法更改原始程序(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而不是static。我是在正确的方向前进还是完全偏离基地?请告诉我一整天都在读书,我担心此时我看不到树林。我确定它很简单。

提前谢谢。

1 个答案:

答案 0 :(得分:4)

您需要覆盖Object.toString()

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

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