1. 程式人生 > >(個人筆記)2018-11-09 包、訪問許可權、抽象類、介面、final

(個人筆記)2018-11-09 包、訪問許可權、抽象類、介面、final

目錄

包-引入包

訪問許可權

抽象類

介面

final

包-三大作用

1. 區分相同名字的類

2. 當類很多事,可以很多的管理類

3. 控制訪問範圍

包- 打包命令

package 包名

包-命名規範

字母小寫

包-常用的包

java.lang.*包 自動引入

java.util.*包 工具包

java.net.*包 網路開發包

java.awt.*包 視窗工具包

包-引入包

import 包

---------------------------------------------------------------------------------------------------------------

訪問許可權

注意:繼承是可以跨包繼承,就像匯入其他包,使用其方法

----------------------------------------------------------------------------------------------------------------

抽象類

1.抽象類存在的原因:父類方法的不確定性

(父類中的方法,父類的該方法的具體實現沒意義,每種子類的實現都不同)

2. 抽象類不能例項化,因為其中的抽象方法沒有實現。

----------------------------------------------------------------------------------------------------------------

介面

1. 介面中可以有變數,但變數不能用private和protected,只能使用public

    a. 介面中的變數,本質上都是static的,而且是final,不管你加不加static、final修飾

    b.在Java開發中,我們經常把常用的變數,定義在介面中,作為全域性變數使用。

                訪問形式:介面名,變數名

2. 介面不可以繼承類,但是可以繼承介面

3. 介面是更加抽象的抽象類,抽象類裡的方法可以有方法體,接口裡的所有方法都沒有方法體,介面體現了程式設計的多型和高內聚低耦合的設計思想。

----------------------------------------------------------------------------------------------------------------

實現介面 VS 繼承類

Java的繼承是單繼承,也就設計一個類最多隻能有一個父類,這種單繼承的機制可以保證類的純潔性,比c++中的多繼承機制簡潔。但是不可否認,對子類功能的擴充套件有一定影響。

1. 實現介面可以看作是 對繼承的一種補充

還有一點,繼承是層級式的,不太靈活(即一個類的改變會導致好幾個類同時要做修改)。

(如修改類1,類2、3、4、5都要做修改)這種結構修改某個類就會打破這種繼承的平衡,而介面就沒有這樣的麻煩,因為它只針對實現介面的類才起作用。

2. 所以,實現介面可以在不打破繼承關係的前提下,對某個類功能擴充套件,非常靈活。

----------------------------------------------------------------------------------------------------------------

final

1.可以修飾變數、類或方法

2. 當不希望父類的某個方法被子類覆蓋時,可以用final關鍵字修飾

3. 當不希望類的某個變數的值被修改,可以用final修飾。

      a. 使用final修飾後,定義時必須賦初值。

      b. final修飾的變數又叫常量,變數名一般寫成"xxx_xxx_xxx"

4. 當不希望類被繼承時,可以用final修飾。

5. 什麼時候用

a. 因為安全的考慮,類的某個方法不允許修改。

b. 類不被其他類繼承

c. 某些變數值是固定不變的,比如圓周率3.1415926