106年普考程式設計概要
四、在物件導向語言 (JAVA or C++),宣告變數為 public, private, protected,其差異性為何?(10分) |
答:
(一)public變數
1.是一個在類別外部可以直接存取的變數。當一個變數被標記為 public 時,其他的類別、函式或物件都可以直接讀取和修改它的值。
2.使用 public 屬性可能會破壞封裝,因為它允許外部對類別的內部資料結構進行直接操作。所以,經常的建議是保持變數的私有性,並且提供公共的方法或函式 (如 getters 和 setters) 來存取它們。
(二)private變數
1.只能由同一個類別的方法存取的變數。外部的類別或物件不能直接存取或修改它的值。
2.使用 private 屬性可以達到資料封裝的效果,這可以確保物件的內部狀態不會被不正確地修改,並且保護類別的實作細節免受外部干擾。
(三)protected變數
1.介於 public 和 private 之間。
2.可以被其所屬的類別以及所有子類別所存取。這意味著,當有一個基礎類別和一些繼承自該基礎類別的子類別時,子類別可以存取基礎類別中的 protected 變數,但其他外部類別仍然無法存取它。
文章標籤
全站熱搜