[問題] 物件的問題
//修改物件的屬性
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.57.132.122
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):