Re: [問題] 物件的問題

看板java作者 (開始投履歷摟!!)時間19年前 (2007/01/12 10:15), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
System.out.println 這一個 method 如果你傳 object 進去而沒有 呼叫任何的 method, 他 default 會呼叫 toString() 這個 method. ※ 引述《idman (9527)》之銘言: : //修改物件的屬性 : class MyPoint : { : protected double x; : protected double y; : MyPoint() : { : setX(0); : setY(0); : } : MyPoint(double x, double y) : { : setX(x); : setY(y); : } : public void setX(double x) : { : this.x = x; : } : public void setY(double y) : { : this.y = y; : } : public double x() : { : return x; : } : public double y() : { : return y; : } : public String toString() : { : return "[" + x + "," + y + "]"; : } : } : class MyLine : { : private MyPoint pt1, pt2; : MyLine(MyPoint pt1, MyPoint pt2) : { : this.pt1 = pt1;//對物件設值 : this.pt2 = pt2;//對物件設值 : } : public double getMyLineLength() : { : return Math.sqrt((pt2.x() - pt1.x()) : * : (pt2.x() - pt1.x()) : + : (pt2.y() - pt1.y()) : * : (pt2.y() - pt1.y())); : } : public String toString() : { : return "point1:" + pt1 + ",point2:" + pt2; : } : } : public class Demo108 : { : public static void main(String[] args) : { : MyPoint pt1 = new MyPoint(1, 1); : MyPoint pt2 = new MyPoint(2, 2); : MyLine line1 = new MyLine(pt1, pt2); : System.out.println("line1 = " + line1); : //修改物件的屬性,使物件的內部狀態發生變化 : //就是對物件設值 : pt1.setX(0); : pt1.setY(0); : System.out.println("修改了線段起點以後"); : System.out.println("line1 = " + line1); : } : } : 我的問題是 當中並沒有呼叫 toString()這個函數 : 請問為什麼會執行到當中的值呢 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.224.43.134
文章代碼(AID): #15fkz51K (java)
討論串 (同標題文章)
文章代碼(AID): #15fkz51K (java)