[英]How public members of a class causes havoc in java?
類的公共成員如何導致Java破壞? 有人可以舉例說明嗎? 我試圖造成這種情況,但無法成功。 我只是發現它們等同於“受保護的”訪問修飾符。
它允許無效值,破壞封裝。
public class Clock {
public int hours;
public int minutes;
}
然后,以不相關的代碼...
Clock clock = new Clock();
clock.hours = 42;
clock.minutes = 99;
通過setter和getter方法使它們私有,可以封裝以強制使用適當的值。
public class Clock {
private int hours;
private int minutes;
public void setHours(int hours) {
if (hours < 0 || hours > 23) throw new IllegalArgumentException("bad range");
this.hours = hours;
}
// Likewise for "setMinutes" method.
}
可以將類的字段設置為只讀或只寫。
一個類可以完全控制其字段中存儲的內容。
類的用戶不知道該類如何存儲其數據。 類可以更改字段的數據類型,並且該類的用戶不需要更改任何代碼。
我相信這一切都取決於您設計的應用程序/程序。
將成員聲明為私有無疑具有優勢。
But on the other hand,
如果您設計一個點類,用戶將繼承該點類並使用它來繪制各種形狀(正方形,矩形,圓形),那么您可能會考慮將成員x,y,z公開。
class Point{
public double x = 0.0;
public double y = 0.0;
public double z = 0.0;
}
這樣做的好處是; 矩形,正方形等類可以直接訪問點
說;
class Square extends Point{
private Point p;
p.x = 4.0;
p.y = 10.0;
p.z = 0;
// Instead of using double x = p.getX(); double p.setX(5.0);
}
希望這可以幫助。
閱讀以下文章; 它應該可以幫助您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.