public class main {
public static void main(String[] args) {
test a = new test("main");
printf(a);
}
public static void printf(Object obj)
{
System.out.println(obj);
}
}
class test
{
public String b = "test";
test(){}
test(String a)
{
this.b = a;
}
public String toString()
{
return this.b;
}}听老师说如果是直接打印对象的话,是要看toString()函数的但是我在api那边
找的时候,找不到原因求解
import java.awt.*;
import java.awt.event.*;
public class TankWarMain
{
public static void main(String[] args) {
TankWarWindow window = new TankWarWindow();
}
}
class TankWarWindow extends Frame
{
public void paint(Graphics g)
{
Color c = g.getColor();
g.setColor(Color.RED);
g.fillOval(50, 50, 30, 30);
g.setColor(c);
}
TankWarWindow()
{
initWindow();
event();
}
public void initWindow()
{
this.setBounds(200, 100, 800, 500);
this.setResizable(false);
this.setTitle("TankWar");
this.setVisible(true);
}
public void event()
{
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
老师说,在完成构造函数的时候,系统是自动调用paint()函数的
但是我在api那里转来转去都转不到答案
纠结了一个晚上了
toString()是object类的一个方法,所有的类都默认继承Object类,所以这个方法也就继承了下来,
直接打印对象时,其实就打印的就是obj.toString();只有在当前类中重写toString()这个方法,才可以输出对象有用的信息。
你们老师说的调用构造函数 其实就是对象实例化,你说的print()自动调用的确实没听说过。
*
* @author Ruidong_pu
* @version 1.1 2013.1.10
*/class Tests {
private String name;//定义姓名
private String pwd;//定义密码
public Tests(){} //无参构造函数
/**
* 有参构造函数
* @param name
* @param pwd
* @return 输出字符串.
*/
public Tests (String name,String pwd){
setName(name);
setPwd(pwd);
toString();//在这个地方调用toString()方法,即可输出.[toString方法已经重写.]
}
/** 用户名.
* set/get
* @param name
*/
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
/** 密码
* set/get
* @param pwd
*/
public void setPwd(String pwd){
this.pwd=pwd;
}
public String getPwd(){
return pwd;
}
/**
* 重写toString方法.
* @return 修改后的字符串
*/
@Override
public String toString() {
// TODO Auto-generated method stub
return "这个用户的用户名是>>>"+getName()+"这个用户的密码是>>>"+getPwd();
}
}
public class TestTop {
/**
* 通过有参构造函数初始化类Testsk12.
* @return Tests的实例.
*/
public Tests Test(){
Tests test = new Tests("小明","123");
return test;
}
public static void main(String []args) {
// TODO Auto-generated method stu
TestTop t =new TestTop();
System.out.println(t.Test());
}
}
其实我知道打印的就是obj.toString();但是我想从api那里找到答案
因为怎么说呢??
我们本身就要学习它的嘛,那它到底暗地里帮我做了什么或者它的默认做法是什么呢??
这个obj.toString()是我们本身就知道它默认是从这里打印的,但是那是我们本来就知道的了,
或者别人告诉的,或者百度得来的,但是api上面都找不到说明吖??
或许这个我们能自己测试调试得出它的结论是对的,但是如果是其它的问题呢??
那我们是不是又要重新证明或者弄明白它的默认??
其实我只是找个官方点的说法或者介绍。。
说得好乱,希望能明白,本人语文水平低,请不要介意
按照规律api里面不会写这个》。。因为我也没看见过