getter和setter
getter 和setter
-
子類中為什麼要寫get和set方法獲取釋放數據,不寫會怎樣?在什麼情況下要用getter和setter? getter通常與一個私有的實例變量對應,用於返回該變量的值
public int getXxxx()
{
return "相應的實例變量";
}
setter通常與一個私有的實例變量對應,用於設置該變量的值
public void setXxxx(類型參數)
{
實例變量=參數;
}
其中 setXxx的參數類型通常要跟相應的實例變量類型相同。
通常,將實例變量私有化,並為其提供相應的getter和setter。
將實例變量私有化是為了隱藏類的實現細節,不對外暴露。
如果期望外部還能訪問私有的實例變量,可以為其提供相應的getter和setter。
如果不期望外部能訪問私有變量,則不需要提供相應的getter和setter。
如果父類中存在私有的實例變量,期望子類能夠訪問,則父類需要為這些實例變量提供相應的getter和setter。
-
如果成員變量是public修飾,還需要get和set方法嗎? 不需要要,因為可以直接訪問。
-
那為什麼非要將成員變量私有化再提供getter和setter?
private intage;//字段(field)
public int getNianLing()
{
return age;
}getNianLing()->去掉get和參數部分->NianLing NianLing->將首字母變小寫->nianLing 這裡得到的
nianLing
就是屬性(property)private int x;//字段(field)
public int getAge()
{//實例變量x對應的getter
returnx;
}getAge()->去掉get和參數部分->Age->將首字母變小寫->age 這裡得到的age就是屬性(property)