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),它與x字段對應

Tags: