包package
1、包的作用
包用來管理不同的類。
2、包名
包名要全部小寫,一般是域名反寫,如com.liu。在Java中,java解釋器會將package中的.解釋為目錄分隔符/,也就是說該文件的目錄結構為:...com/liu/...
3、全類名/全限定名
包名+類名,如com.liu.Student
4、使用import關鍵字導包
①當導入一個包后,這個包下的其他類就可以直接使用了,不用再導入;
②java.lang包下的類也可以直接使用;
③其他情況,比如不同包中的其他類要導個包或者import全類名才可以使用。
final
學習了繼承之后知道了子類可以修改父類中的屬性值或者重寫父類中的行為,但是如果不想被改變則可以用final關鍵字修飾。
1、修飾變量
不可被改變,叫常量,只能被賦值一次。
被final修飾的常量名稱,一般都有書寫規范,所有字母都大寫,單詞之間使用_連接。?
final修飾的變量
(1)基本數據類型:其值不可再變化;
(2)引用數據類型:指向的地址不會再變化,但地址中存的內容是可能會被改變的。
2、修飾方法
此方法不可被子類重寫。如果這個方法表示的是一種規則,不想被別人改變,則可用final修飾。
3、修飾類
不可被繼承。像Java中提供的Math、String和Scanner這些類都是被final修飾的,只希望我們使用,不想要我們去改變它們的行為。
后面的2和3只用知道就行了,1用的較多,要掌握。
權限修飾符
控制可以被訪問的范圍。
范圍分為四個部分,分別是本類、同一包下的其他類、不同包下的子類、不同包中的無關類。
1、private
2、默認/缺省
3、protected
想讓其他包中的子類也可以訪問到,提出了protected修飾符。
4、public
實際開發中最常用的就是private和public:
(1)成員變量私有
(2)方法公開
特例:如果一個方法中的代碼是其他方法中的共性抽取出來的,這個方法一般也私有,不對外提供。
代碼塊
用大括號括起來的代碼。
1、局部代碼塊
寫在方法里面的一對大括號,可以提前結束變量的生命周期,已被淘汰。
2、構造代碼塊
把構造方法中重復的代碼抽取出來放到用大括號括起來,成員變量的位置。
格式:
{//語句體;
}
在每次創建本類對象的時候一定會先執行構造代碼塊,然后再執行構造方法。
這個技術也漸漸淘汰了,因為太死了,不夠靈活,即在創建對象的時候構造代碼塊中的內容一定會執行,沒有辦法不執行,但是有時候我們就是不想要執行。
所以如果構造方法有共性的部分可以寫成一個構造方法由其他構造方法通過this進行調用,也可以寫成一個方法由構造方法去調用。
3、靜態代碼塊
格式:
static {//語句體;
}
隨著類的加載而出現,只執行一次。
什么時候用?在類加載的時候做一些數據初始化,并且只希望只執行一次的時候就可以用了。