我有一个程序,需要编写一个类文件才能运行它,我无法更改原始程序(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。我是在正确的方向前进还是完全偏离基地?请告诉我一整天都在读书,我担心此时我看不到树林。我确定它很简单。
提前谢谢。
答案 0 :(得分:4)
您需要覆盖Object.toString()
。
在上面的print语句中,println()
- 方法在内部调用给定对象上的toString()
- 方法。可以覆盖此方法以返回有意义的内容。 E.g:
@Override
public String toString(){
return "My var1-field has a value of: "+this.var1;
}