java中包的理解,普通類、抽象類、介面作為方法引數傳值情況,作為返回值的傳遞情況。
一、包的概念
用於存放類檔案,包含原始檔還有.class檔案。通過包的分類管理讓功能相同的類放在一個資料夾裡。作用:為類檔案進行分類管理。
二、包的宣告格式
通常使用公司網址反寫。包名全部採用小寫字母。多層包用.連線。包的宣告必須在有效程式碼的第一行。
導包:
import java.util.*其中.*的意思是將util包裡的內容全部導進來。導包必須引入到類真正的資料夾中。比如
Lock類,在util包中,但是Lock類的導包是這樣的:import java.util.concurrent.locks.*因為,Lock類不在util資料夾下的Locks資料夾內。
此外:類的全名要帶上包名
注意:
1、java中lang包不需要匯入。
jdk,jre,jvm的包含關係
三、eclipse中註釋文件的寫法
1、類前的註釋文件
宣告作者和版本。
2、方法前的註釋
注意:這些有什麼用呢?用來生成javadoc文件的。注意書寫順序,首先看類文件,先寫用途,再寫作者,再寫版本。
方法文件:先寫用途,再寫傳遞的引數,再寫返回值。
3、eclipse中引入第三方架包
在工程裡面建立lib資料夾,將架包匯入lib裡面,部署架包到引用類庫中。就算匯入了。
jar包裡面大多是.class檔案。
四、修飾符的細節
解釋一下不能同時使用的原因。
抽象是用來繼承的,私有了無法繼承,就是矛盾體。
抽象方法無方法體,static是可以直接呼叫的,可以類名直接呼叫,抽象類根本無法例項化,怎麼呼叫?矛盾、
抽象是用來重寫的,final就是用來阻止重寫的。
五、引用型別引數(類作為方法引數)
引用型別傳參構造的方法的呼叫,有兩種方式。
1、建立物件,傳遞引用引數。
2、傳遞匿名物件。
六、方法返回值是Person型別。
有兩種方式,第一種是建立物件的方式
第二種是匿名物件方式
七、抽象類作為方法引數傳遞
抽象類作為引數,體現了多型的擴充套件性,其實就是一種多型體制。Animal a=new cat();然後a呼叫了子類的重寫方法。非常好。
八、抽象類作為返回值
第一個圖,方法要求時返回抽象型別Animal 但是Animal是一個抽象類,沒有物件,最後return 子類。第二個圖,建立子類物件,但是方法返回的是父類物件,不能再用子類接收,否則就報錯,因為範圍變小了,必須用比Animal大的物件接收。最後使用了多型的方法a.eat();
其實第一個返回就是多型。Animal a= new Cat();其中return new Cat();也可以返回return new Dog();這裡體現了多型性。
九、介面作為方法引數
介面作為方法引數和抽象類很相似。
同樣有兩種傳參方式:1、建立傳遞普通物件的方式。2、使用匿名物件的方式,匿名物件只能用一次。
相當於 Smoking s=new Student();一種多型的形式。接著是多型呼叫實現類。
其實還有一種方法,這個方法抽象類是不能用。
使用多型的方式傳參。之所以抽象類無法這樣用,是因為抽象類無法建立物件。
十、介面作為返回值型別。
介面作為返回值,和抽象類作為返回值很相似。直接用介面來接收。
十一、抽象類作為靜態方法返回值的情況。
靜態方法可以通過類名直接獲取。因此就不需要再建立子類物件,並賦值給父類變量了。這是靜態抽象類作為返回值的獨特方法。
十二、總結:
成員變數若是非私有型別,那就是靜態最終的固定好的。