1.JAVA基礎核心概念
JAVA基礎知識
轉載至:http://www.runoob.com/java/java-variable-types.html
對菜鳥教程進行核心整理:
一、JAVA理論概念
1、基礎概念
Java作為一種面嚮物件語言主要特性概念如下
-
介面:介面可理解為物件間相互通訊的協議。介面在繼承中扮演著很重要的角色。( 可多繼承 )介面只定義派生要用到的方法,但是方法的具體實現完全取決於派生類。
1、多型:前提是繼承 ,不同類對同一訊息作出響應。解決應用程式重名問題,引數化多型和包含多型。
2、繼承:增加類的可重用性 ,一個類可以由其他類派生。如果你要建立一個類,而且已經存在一個類具有你所需要的屬性或方法,那麼你可以將新建立的類繼承該類。
利用繼承的方法,可以重用已存在類的方法和屬性,而不用重寫這些程式碼。被繼承的類稱為超類(super class),派生類稱為子類(subclass)。
3、封裝:把過程和資料包圍保護(private),通過受保護介面訪問其它物件
4、抽象:忽略主題無關,更加注意主旨 ,拋棄細節,有過程抽象(函式),資料抽象(資料型別)
5、類:類是一個模板,它描述一類物件的行為和狀態。
6、物件:物件是類的一個例項,有狀態和行為 。例如,一條狗是一個物件,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
7、例項:每個物件都有獨特的例項變數,物件的狀態由這些例項變數的值決定
8、方法:方法就是行為,一個類可以有很多方法 。邏輯運算、資料修改以及所有動作都是在方法中完成的。
9、過載:同一類中有倆個以上相同的方法名,但引數不同,方法不同。
2、Java變數
- 區域性變數 :在方法、構造方法或者語句塊中定義的變數被稱為區域性變數。變數宣告和初始化都是在方法中,方法結束後,變數就會自動銷燬 。
- 成員變數 :成員變數是定義在類中,方法體之外的變數。這種變數在建立物件的時候例項化。成員變數可以被類中方法、構造方法和特定類的語句塊訪問。(主方法之外)
- 類變數 :類變數也宣告在類中,方法體之外,但必須宣告為static型別 。
需要注意的地方:(JAVA關鍵字也不能在類名或者方法使用。)
3、命名規則:
1、見名釋義
2、不跟關鍵字和保留字衝突
3、駝峰原則,類名和介面名首字母大寫( 大駝峰規則 ) 常量名大寫下劃線分開變數名,方法名( 小駝峰規則 )首字母小寫,第二個單詞大寫
- 大小寫敏感 :Java是大小寫敏感的,這就意味著識別符號Hello與hello是不同的。
- 類名 :對於所有的類來說,類名的首字母應該大寫。如果類名由若干單片語成,那麼每個單詞的首字母應該大寫,例如 MyFirstJavaClass 。
- 方法名 :所有的方法名都應該以小寫字母開頭。如果方法名含有若干單詞,則後面的每個單詞首字母大寫。
- 原始檔名 :原始檔名必須和類名相同。當儲存檔案的時候,你應該使用類名作為檔名儲存(切記Java是大小寫敏感的),檔名的字尾為.java。(如果檔名和類名不相同則會導致編譯錯誤)。
- 主方法入口 :所有的Java 程式由public static void main(String []args) 方法開始執行。
4、JAVA兩類修飾符:
- 訪問控制修飾符 : default, public , protected, private
- 非訪問控制修飾符 : final, abstract, static, synchronized
5、Java陣列
陣列是儲存在堆上的物件,可以儲存多個同類型變數。在後面的章節中,我們將會學到如何宣告、構造以及初始化一個數組。
6、Java列舉
列舉限制變數只能是預先設定好的值。使用列舉可以減少程式碼中的bug。
註釋: // 這是單行註釋的示例 /* 這個也是單行註釋的示例*/
/*這是第一個Java程式
這是一個多行註釋的示例*/
7、構造方法和過載以及重寫
重寫是子方法覆蓋父類方法、要求方法名和引數相同;(前提是繼承)
過載是同一類中有倆個以上相同的方法名,但引數不同,方法不同。
建構函式是過載的一種,最大的作用是建立物件完成初始化 。 每個類都有構造方法。如果沒有顯式地為類定義構造方法,Java編譯器將會為該類提供一個預設構造方法。在建立一個物件的時候,至少要呼叫一個構造方法。構造方法的名稱必須與類同名,一個類可以有多個構造方法。
8、建立物件
- 宣告 :宣告一個物件,包括物件名稱和物件型別。
- 例項化 :使用關鍵字new來建立一個物件。
- 初始化 :使用new建立物件時,會呼叫構造方法初始化物件。
Puppy myPuppy = new Puppy ( " tommy " ) ; /* 例項化物件 */ ObjectReference = new Constructor ( );
/* 訪問類中的變數 */ ObjectReference . variableName ; /* 訪問類中的方法 */ ObjectReference . methodName ( );
1、內建資料型別
Java語言提供了八種基本型別。 六種數字型別(四個整數型,兩個浮點型),一種字元型別,還有一種布林型 。
1、byte
2、short
3、int
4、long
5、float
6、double
7、boolean
8、char
相應的封裝方法
System.out.println("基本型別:byte 二進位制位數:" + Byte.SIZE);
System.out.println("包裝類:java.lang.Byte");
System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
2、引用資料型別
在Java中,引用型別的變數非常類似於C/C++的指標。引用型別指向一個物件,指向物件的變數是引用變數。這些變數在宣告時被指定為一個特定的型別,比如 Employee、Puppy 等。變數一旦聲明後,型別就不能被改變了。
物件、陣列都是引用資料型別。
所有引用型別的預設值都是null。
一個引用變數可以用來引用任何與之相容的型別。
3、JAVA常量
常量在程式執行時是 不能被修改 的。
在 Java 中使用 final 關鍵字 來修飾常量,宣告方式和變數類似:
final double PI = 3.1415927;
三、自動型別轉換
整型、實型(常量)、字元型資料可以混合運算。運算中,不同型別的資料先轉化為同一型別,然後進行運算。
byte,short,char—> int —> long—> float —> double
轉換的規則:
1. 不能對boolean型別進行型別轉換。
2. 不能把物件型別轉換成不相關類的物件。
3. 在把容量大的型別轉換為容量小的型別時必須使用強制型別轉換。
4. 轉換過程中可能導致溢位或損失精度
5. 浮點數到整數的轉換是通過捨棄小數得到
強轉可能丟失精度: