一、重寫tostring()方法和意義
1、沒有重寫tostring ,每執行System.out.println() 會默認調用Object 的toString 方法,情況如下:
2、重寫tostring,每執行System.out.println() 會調用重寫的toString 方法,情況則會根據重寫的方法打印輸出成自己想得到的格式。
3、所以每次編寫實現類都重寫一下tostring() 方法!!
4、一般out.println(Object) 和 System.out.println(Object),其中輸出的都是Object.toString()方法。
5、自動生成:在代碼區單擊右鍵——Source——Generate toString()…
二、解釋set和get方法
自定義類中set是設置的意思,而get是獲取的意思,顧名思義,這兩個方法是對數據進行設置和獲取用的。而且,在類中使用set和get方法時,都是在set和get后面跟上一些特定的詞來形成特定意思的方法名,比如setage()和getage(),表示設置年齡和獲取年齡。
然后我們來了解一下JAVA面向對象編程中的封閉性和安全性。封閉性即對類中的域變量進行封閉操作,即用private來修飾他們,如此一來其他類則不能對該變量訪問。這樣我們就將這些變量封閉在了類內部,這樣就提高了數據的安全性。
當我們想要操作這些域變量怎么辦呢?我們可以通過兩種方法。
第一種即通過public方式的構造器(或稱構造函數),對象一實例化就對該變量賦值。
自動生成:在代碼區單擊右鍵——Source——Generate Constructor using Fields:
第二種就是通過上面提到的set和get方法,這里我舉一個特定的例子,我定義一個Person類,該類中有id這個私有域變量,然后我定義setId()、getId()這兩個方法,通過這兩個方法來實現對id操作。這樣一來,我不用直接對Person類中的域變量操作,而是通過set和get方法間接地操作這些變量,這樣就能提高域變量的安全性,同時又保證了域變量的封裝型。這兩個函數如果是類內部的函數,實質是起到一個溝通類外部和內部的橋梁作用, setId給外界一個能設置類私有變量的接口,getId給外界一個獲取類私有變量的接口.
自動生成:在代碼區單擊右鍵——Source——Generate Getters and Setters…
最后說說set和get方法的使用場景,一般來說set和get方法都是對私有域變量進行操作的,所以大多數都是使用在包含特定屬性的類實體中。