System.out.println()方法我們很熟悉,用來(lái)控制臺(tái)輸出,比如System.out.println("abc"),會(huì)輸出字符串"abc"。但是當(dāng)System.out.println()傳遞的參數(shù)為對(duì)象會(huì)是什么情況呢?下面來(lái)看一個(gè)簡(jiǎn)單的例子:
class A{
int a;
int b;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
}
public class Test {
public static void main(String args[]){
A a = new A();
a.setA(8);
a.setB(9);
System.out.println("a.a:"+a.a);
System.out.println("a.b:"+a.b);
System.out.println(a);
}
}
運(yùn)行結(jié)果為:
可以看到,本來(lái)我是想輸出a和b的值,但是結(jié)果的第三行卻不是我們想要的結(jié)果。為什么呢?
Object中有一個(gè)toString()的方法,但不幸的是我們需要重寫(xiě)這個(gè)方法才能按照我們自己的意愿輸出,將上面的程序稍作修改,即添加改寫(xiě)toString函數(shù)的代碼:
class A{
int a;
int b;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
public String toString(){
return "A.a:"+a+";A.b:"+b;
}
}
public class Test {
public static void main(String args[]){
A a = new A();
a.setA(8);
a.setB(9);
System.out.println("a.a:"+a.a);
System.out.println("a.b:"+a.b);
System.out.println(a);
}
}
運(yùn)行的結(jié)果為:
新聞熱點(diǎn)
疑難解答
圖片精選