1. 程式人生 > >get-set 函數 各種查閱之後的理解哈哈哈

get-set 函數 各種查閱之後的理解哈哈哈

變量賦值 封裝 變量 行修改 無法訪問 狀態 個人 構造對象 電話

我們先來看看set和get這兩個詞的表面意思,set是設置的意思,而get是獲取的意思,顧名思義,這兩個方法是對數據進行設置和獲取用的。而且,在類中使用set和get方法時,都是在set和get後面跟上一些特定的詞來形成特定意思的方法名,比如setage()和getage(),表示設置年齡和獲取年齡。
然後我們來了解一下JAVA面向對象編程中的封閉性和安全性。封閉性即對類中的域變量進行封閉操作,即用private來修飾他們,如此一來其他類則不能對該變量訪問。這樣我們就將這些變量封閉在了類內部,這樣就提高了數據的安全性,當我們想要操作這些域變量怎麽辦呢?我們可以通過兩種方法,第一中即通過public方式的構造器(或稱構造函數),對象一實例化就對該變量賦值。第二種就是通過上面提到的set和get方法,這裏我舉一個特定的例子,我定義一個Person類,該類中有name、age這兩個私有域變量,然後我定義setname()、getname()、setage()、getage()這四個方法,通過這四個方法來實現對name和age的操作。這樣一來,我不用直接對Person類中的域變量操作,而是通過set和get方法間接地操作這些變量,這樣就能提高域變量的安全性,同時又保證了域變量的封裝型。

最後說說set和get方法的使用場景,一般來說set和get方法都是對私有域變量進行操作的,所以大多數都是使用在包含特定屬性的類實體中。
現在你明白set和get方法了吧,其實這兩個方法只是類中的setxxx和getxxx方法的總稱。

--------------------------------來自某個博客----------------具體的我忘記了-------------上面的不是我個人理解-----------------------------------

樓主你說的私有變量 也叫狀態,而方法叫做行為;
你也知道,一個類的私有變量在類外部是無法訪問的,也就是無法直接修改私有變量;
而構造對象的時候,有些狀態是必須的,或在對象生命周期中不會修改的狀態,在構造對象時對其進行初始化更方便,更安全(沒有其他方法可以改變,只能在構造函數中初始化,或setXXX()都是private修飾);
有些狀態是可選的,或臨時的,對象在其生命周期中是可發生改變的,所以需要更改器方法(setXXX())來對其值進行修改;

比如說,設計一個Person類時,如果要求身份證號,姓名和性別 是必需初始化的,且不會改變的;而地址,E-Mail,電話號等是可選的;你說怎麽設計最好呢?

對一個屬性封裝後 只能通過get/set方法對屬性賦值
當你需要調用該屬性的時候通過set方法對其設置初始值
通過get方法得到其值

綜上所述

我認為

set函數是對私有類裏的對象設置初始值,get則可以得到set函數設置的值,就像上面的身份證號,在初始化之後不會改變(然後再進行封裝),然後這個身份證號就不會變了,但是電話號碼,郵箱之類的還是會更改,所以再去訪問時候用set();get();函數set函數再次對屬性賦值,進行初始化,通過get方法得到這個值。-------看了 那麽多帖子和聽了老師講的之後大體懂得,不知道準確不準確……

get-set 函數 各種查閱之後的理解哈哈哈