1. 程式人生 > >java中包的理解,普通類、抽象類、介面作為方法引數傳值情況,作為返回值的傳遞情況。

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();一種多型的形式。接著是多型呼叫實現類。

其實還有一種方法,這個方法抽象類是不能用。

使用多型的方式傳參。之所以抽象類無法這樣用,是因為抽象類無法建立物件。

十、介面作為返回值型別。

介面作為返回值,和抽象類作為返回值很相似。直接用介面來接收。

十一、抽象類作為靜態方法返回值的情況。

靜態方法可以通過類名直接獲取。因此就不需要再建立子類物件,並賦值給父類變量了。這是靜態抽象類作為返回值的獨特方法。

十二、總結:

成員變數若是非私有型別,那就是靜態最終的固定好的。