今天來談談修飾子(Modifier)。
修飾子我覺得可以分為三大類,第一種就是封裝用的修飾子,第二種為宣告屬性或方法是否為靜態,第三種是final。
靜態(Static)
剛剛提到的學習維度問題,很遺憾的static讓它又增加了一個維度。不過只要了解到,靜態修飾子的目的就是讓類別中的成員變成是類別所擁有、公用的,而不是在創建實例後讓各個實例擁有的成員。會叫做靜態就是這個意思,因為被宣告維靜態的成員在JVM類別載入後就成立了,而不是在創建實例時才成立,所以有靜態的意味。
能夠被宣告維static的成員有field, method, inner class, block(程式區塊,這部分之後應該會寫一篇)。
final
一般我們在程式要存放值的時候,就會宣告出一個變數來存; 那我們是不是可以在之後用同樣的變數存放其他的值? 當然可以囉,不過原本存放的值就會被蓋掉了,這種現象叫做狀態(state)改變。那可不可以讓變數在儲存一個值之後,就不可以指派其他值進去? 可以的,這時候就需要用到final修飾子,它可以讓變數成為常數(constant)。
final的對象可以為class, field, method; 如果為class或method,就代表對象無法被繼承或被覆寫。
目前能想到的就這些了,總感覺還有很多種可能沒想到,真毛。