在Java開發裡面出現了很多名次,包括以後學習Java中也會出現很多常用到的名詞,對初學者來說可能不知道是什麼意思,或者是對這些刺耳的理解不是特別透徹,這裡我就我自己的理解來解釋下這些詞的意思。
包
在Java中常說某個包下面的某個類。那麼什麼是包呢?在平時操作電腦時,我們常江某個文檔,視頻,音頻等問價放在某個文件夾下,而這個文件夾在Java中就就叫做包。其實飽和文件夾在某種意義上來說是等同的,只是在Java中將其叫做包而不叫做文件夾。
類
放在包下面的一個個並且是以.java結尾的文件就是類。前面有說道對想是Java程序的核心,而類描述了對象的屬性和對象的行為,類是對象模板【類是對對象的抽象,對象是對類的實例化】 類按類型分為普通類,抽象類,接口,嵌套類等。按層級分又分為父類和子類。
普通類
【訪問修飾符】 class 類名 【implements/extends 類名】{ },其中有一種特殊的類object類,object類是所有類的父類,如果一個類沒有用extends明確指出繼承於某個類,那麼它默認繼承Object類。
抽象類
當一個類中沒有足夠的信息描述一個具體的書屋時,這個類就是抽象類。語法:【訪問修飾符】 abstract class 類名{ }特點:1、抽象類不能實例化2、抽象類可以擁有構造方法3、抽象類可以聲明實例變量,也可以聲明靜態變量,也可以存在普通方法和靜態方法,變量在抽象類中可以初始化4、抽象類中還可以有抽象方法 語法:【訪問修飾符】 abstract 返回值類型 方法名 (【參數】);5、抽象類抽象方法,有抽象類的子類來實現6、如果一個類是抽象類,那麼這個類的不一定有抽象方法,但如果一個類有抽象方法,那麼這個類一定是抽象類7、如果抽象類的子類沒有吧抽象類中的所有抽象方法實現,則子類也需要定義成抽象類,有子類的子類負責實現剩餘的抽象方法。8、普通方法在子類中與普通類一樣,可以實現也可以不實現。
接口
就是對外提供了一系列功能的生命(也可以說接口中定義的方法只有方法的生命,沒有方法體)語法:【訪問修飾符】 interface 接口名 { //常量和方法的聲明}
1 public interface demo{2 int i=0;3 public void add() ; 4 }
特點:1、接口中聲明的方法沒有方法體,只有方法的聲明;2、接口中聲明的成員屬性都是靜態的而且都是不可變的,因為接口中的成員屬性默認都是public static final 來修飾的;3、接口沒有構造方法,也不能被實例化;4、接口可以實現多繼承,接口之間用逗號隔開;5、接口中的方法只能被public來修飾,就算沒有明確的神明訪問修飾符,默認也是public通過implements來實現接口,語法:【訪問修飾符】 class 類名 implements 接口1,接口2{ }
嵌套類
聲明在類的內部的類稱之為嵌套類語法:【訪問修飾符】 class 類名{【訪問修飾符】【static】 class 類名{ } }分類:內部類:非靜態嵌套類; 靜態嵌套類:用static修飾的嵌套類。內部類:內部類作為外部類的一個成員存在,與外部類的成員變量,成員方法並列;局部內部類:在方法體內聲明的類,可以訪問他所在方法中的final參數和final局部變量;靜態嵌套類中可聲明static成員或非靜態成員變量,但只能訪問外部類中的靜態成員。
方法
方法就是實現某個功能的代碼塊方法的定義語法:1、無返回值無參數的方法 【訪問修飾符】 void 方法名(){ //方法的功能代碼 }說明:void就是表示該方法是無返回值得(也就是說調用完該方法不會返回一個結果)2、無返回值有參數的方法 【訪問修飾符】 void 方法名(數據類型 參數名,...){//方法的功能代碼}說明:方法中的參數又稱為形參(形式意義的參數),調用該方法時傳遞的數據稱為實參(實際的數據),傳遞的參數要和方法中的參數類型匹配3、有返回值無參數的方法 【訪問修飾符】 返回值類型 方法名稱(){ return 返回值; }說明:1、返回值類型有放回值來決定;2、在由返回值得方法的最後一句代碼,一定是 return 返回值。4、有返回值有參數的方法 【訪問修飾符】 返回值類型 方法名(參數列表){ return 返回值}
變量
定義:在Java中用來存儲數據的元素,而且該元素所存放的數據時可以變化的,所以稱為變量注意:變量也是標識符的一部分語法:1、變身名變賦值 數據類型 變量名稱=變量值2、先聲明後賦值 數據類型 變量名稱;變量名稱=變量值;定義變量的四個步驟:1、聲明數據類型其實就是為了根據數據類型開闢相應的內存空間2、給變量命名,其實就會說為了能夠把變量名和數據類型所對應的內存空間進行關聯3、給變量賦值,其實就是把數據存放到變量名所對應的內存空間4、使用變量,其實就是把變量所對應的內存空間中的數據讀取出來
常量
定義:在程序中他的值是不可變的,這樣的冤死及時常量語法:final 數據類型 常量名稱=常量值;建議:常量名稱一般全部大寫
標識符
標識符就是類名,方法名,參數名,包名等元素命名時,所寫的字符序列就統稱為標識符標識符的命名規則:1、有字幕,數字,下劃線,和$組成2、不能以數字開頭3、嚴格區分大小寫4、長度無限制5、不能是Java的關鍵字和保留關鍵字建議:見名知意
訪問修飾符
在定義類、屬性、方法時都需要指定訪問修飾符,以此來限定類、屬性、方法的可訪問範圍。Java中的訪問修飾符有以下幾個關鍵字:public:公共。該類或非該類均可訪問private:私有的。只有在類的主體中才可以訪問。只能修飾屬性和方法,不能修飾類protected:受保護。該類及子類的成員均可以訪問,同一個包中的類也可以訪問。只能修飾屬性和方法,不能修飾類默認:不使用修飾符。只有相同包中的類才可以訪問
位置private默認protectedpublic同一個類是是是是同一個包內的類否是是是不同保內的類否否是是不同包內不同類否否否 是
關鍵字
在Java中被賦予了一定特殊意義和用途的單詞保留關鍵字也是關鍵字,只是目前沒有任何的特殊意義和用途,保留使用。
this關鍵字
使用範圍:this關鍵字只能使用在沒有被static關鍵字修飾的方法中作用:this關鍵字就會說對當類某個對象的引用(簡單來說就是可以把this看做當前類的一個對象,哪個對象調用當前的方法,this關鍵字就指向該對象)【當局部變量和成員變量完全一致時,以局部變量為主,即就近原則】用法:1、當方法中的參數名或變量名和成員變量完全一致時,可以通過this關鍵字來區分作用域2、當this關鍵字以this(參數列表)的形式,出現在構造方法的第一句時,就表示當前構造方法調用了該類中其他的構造方法。
final關鍵字
1、final修飾的變量等同於常量,一旦賦值就無法更改(是指引用變量不能變,引用變量所指向的對象的內容還是可以改變的)【final無論修飾全局變量還是局部變量,在定義時都必修要初始化才能使用】2、final修飾方法中的參數稱為最終參數,在方法體中同樣也不能為最終參數重新賦值3、final修飾類,該類不能被繼承4、final修飾的方法,不能被重寫
staitic關鍵字
static可以修飾變量,方法,代碼塊static修飾變量,也稱為類變量,因為static關鍵字修飾的變量,方法,代碼塊都屬於類,而不屬於某個對象【實例變量:沒有被static修飾的成員屬性或方法都屬於某個對象,也叫做實例屬性或實例方法,對象存在了,才會有實例變量開闢空間】static修飾的屬相、方法可以通過:類名.屬性名或l類名.方法(參數)的形式來調用特點:1、靜態方法中只能訪問靜態方法和靜態的成員變量;2、在非靜態方法中,既可以訪問非靜態的方法、屬性,也可以訪問靜態屬性和靜態方法;3、在靜態方法中不能使用this和supper關鍵字,因為this和supper表示對對象的引用,而static修飾的方法是屬於類,所以在語法上存在一定的衝突。靜態代碼塊:靜態代碼塊只能出現在類的內部,任何方法的外部;靜態代碼塊語法:static{ };靜態代碼塊作用:就是給靜態的成員屬性進行初始化;靜態代碼塊的優先級比構造方法的優先級高。
方法中參數的傳遞
在Java中無論是基本數據類型還是引用數據類型,在進行參數的傳遞時,都是採用的值傳遞(也就是傳遞的都是具體的數據)基本數據類型在進行參數傳遞時,傳遞的值是副本,也就是說當把當前數據複製一份,然後再進行穿絲,所以目標方法中,對參數進行修改,這個值得本身是沒有任何變化的。引用數據類型字進行參數的傳遞時,傳遞的是數據所在的內存地址,所以在目標方法中,對參數進行修改,這個值本身也會發生相應的變化。
向上轉型和向下轉型
向上轉型:把一個子類的對象,賦值給父類,就會把該對象當做父類對象來用動態(延遲)綁定機制:在程序運行期間,會根據對象的真正的創建者來決定調用那個方法發生動態綁定機制的條件:
1、繼承
2、重寫
3、向上轉型
4、用向上轉型的對象調用被子類重寫的方法向下轉型:把一個父類對象,複製給某個子類,需要加上強制轉換符,向下轉型一定是在向上轉型的基礎上類型的還原,向下轉型調用子類中的沒有重寫的方法,可以通過instanceof關鍵字來判斷某個獨享是否屬於某各類。