標籤:種類型 pac public static 設計 斷言 構造 標識符 類變數
Java 基礎文法
一個Java程式可以認為是一系列對象的集合,而這些對象通過調用彼此的方法來協同工作。下面簡要介紹下類、對象、方法和執行個體變數的概念。
- 對象:對象是類的一個執行個體,有狀態和行為。例如,一條狗是一個對象,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
- 類:類是一個模板,它描述一類對象的行為和狀態。
- 方法:方法就是行為,一個類可以有很多方法。邏輯運算、資料修改以及所有動作都是在方法中完成的。
- 執行個體變數:每個對象都有獨特的執行個體變數,對象的狀態由這些執行個體變數的值決定。
第一個Java程式
下面看一個簡單的Java程式,它將列印字串 Hello World
執行個體public class HelloWorld { /* 第一個Java程式 * 它將列印字串 Hello World */ public static void main(String []args) { System.out.println("Hello World"); // 列印 Hello World } }
運行執行個體 ?
下面將逐步介紹如何儲存、編譯以及運行這個程式:
- 開啟Notepad,把上面的代碼添加進去;
- 把檔案名稱儲存為:HelloWorld.java;
- 開啟cmd命令視窗,進入目標檔案所在的位置,假設是C:\
- 在命令列視窗鍵入 javac HelloWorld.java 按下enter鍵編譯代碼。如果代碼沒有錯誤,cmd命令提示字元會進入下一行。(假設環境變數都設定好了)。
- 再鍵入java HelloWorld 按下Enter鍵就可以運行程式了
你將會在視窗看到 Hello World
C : > javac HelloWorld.javaC : > java HelloWorld Hello World
Gif 圖示範:
基本文法
編寫Java程式時,應注意以下幾點:
- 大小寫敏感:Java是大小寫敏感的,這就意味著標識符Hello與hello是不同的。
- 類名:對於所有的類來說,類名的首字母應該大寫。如果類名由若干單片語成,那麼每個單詞的首字母應該大寫,例如 MyFirstJavaClass 。
- 方法名:所有的方法名都應該以小寫字母開頭。如果方法名含有若干單詞,則後面的每個單字首大寫。
- 源檔案名稱:源檔案名稱必須和類名相同。當儲存檔案的時候,你應該使用類名作為檔案名稱儲存(切記Java是大小寫敏感的),檔案名稱的尾碼為.java。(如果檔案名稱和類名不相同則會導致編譯錯誤)。
- 主方法入口:所有的Java 程式由public static void main(String []args)方法開始執行。
Java標識符
Java所有的組成部分都需要名字。類名、變數名以及方法名都被稱為標識符。
關於Java標識符,有以下幾點需要注意:
- 所有的標識符都應該以字母(A-Z或者a-z),美元符($)、或者底線(_)開始
- 首字元之後可以是字母(A-Z或者a-z),美元符($)、底線(_)或數位任何字元組合
- 關鍵字不能用作標識符
- 標識符是大小寫敏感的
- 合法標識符舉例:age、$salary、_value、__1_value
- 非法標識符舉例:123abc、-salary
Java修飾符
像其他語言一樣,Java可以使用修飾符來修飾類中方法和屬性。主要有兩類修飾符:
- 存取控制修飾符 : default, public , protected, private
- 非存取控制修飾符 : final, abstract, strictfp
在後面的章節中我們會深入討論Java修飾符。
Java變數
Java中主要有如下幾種類型的變數
- 局部變數
- 類變數(靜態變數)
- 成員變數(非靜態變數)
Java數組
數組是儲存在堆上的對象,可以儲存多個同類型變數。在後面的章節中,我們將會學到如何聲明、構造以及初始化一個數組。
Java枚舉
Java 5.0引入了枚舉,枚舉限制變數只能是預先設定好的值。使用枚舉可以減少代碼中的bug。
例如,我們為果汁店設計一個程式,它將限制果汁為小杯、中杯、大杯。這就意味著它不允許顧客點除了這三種尺寸外的果汁。
執行個體class FreshJuice { enum FreshJuiceSize{ SMALL, MEDIUM , LARGE } FreshJuiceSize size;} public class FreshJuiceTest { public static void main(String []args){ FreshJuice juice = new FreshJuice(); juice.size = FreshJuice.FreshJuiceSize.MEDIUM ; }}
注意:枚舉可以單獨聲明或者聲明在類裡面。方法、變數、建構函式也可以在枚舉中定義。
Java關鍵字
下面列出了Java保留字。這些保留字不能用於常量、變數、和任何標識符的名稱。
| 關鍵字 |
描述 |
| abstract |
抽象方法,抽象類別的修飾符 |
| assert |
斷言條件是否滿足 |
| boolean |
布林值資料型別 |
| break |
跳出迴圈或者label程式碼片段 |
| byte |
8-bit 有符號資料類型 |
| case |
switch語句的一個條件 |
| catch |
和try搭配捕捉異常資訊 |
| char |
16-bit Unicode字元資料類型 |
| class |
定義類 |
| const |
未使用 |
| continue |
不執行迴圈體剩餘部分 |
| default |
switch語句中的預設分支 |
| do |
迴圈語句,迴圈體至少會執行一次 |
| double |
64-bit雙精確度浮點數 |
| else |
if條件不成立時執行的分支 |
| enum |
枚舉類型 |
| extends |
表示一個類是另一個類的子類 |
| final |
表示一個值在初始化之後就不能再改變了
表示方法不能被重寫,或者一個類不能有子類 |
| finally |
為了完成執行的代碼而設計的,主要是為了程式的健壯性和完整性,無論有沒有異常發生都執行代碼。 |
| float |
32-bit單精確度浮點數 |
| for |
for迴圈語句 |
| goto |
未使用 |
| if |
條件陳述式 |
| implements |
表示一個類實現了介面 |
| import |
匯入類 |
| instanceof |
測試一個對象是否是某個類的執行個體 |
| int |
32位整型數 |
| interface |
介面,一種抽象的類型,僅有方法和常量的定義 |
| long |
64位整型數 |
| native |
表示方法用非java代碼實現 |
| new |
分配新的類執行個體 |
| package |
一系列相關類組成一個包 |
| private |
表示私人欄位,或者方法等,只能從類內部訪問 |
| protected |
表示欄位只能通過類或者其子類訪問
子類或者在同一個包內的其他類 |
| public |
表示共有屬性或者方法 |
| return |
方法傳回值 |
| short |
16位元字 |
| static |
表示在類層級定義,所有執行個體共用的 |
| strictfp |
浮點數比較使用嚴格的規則 |
| super |
表示基類 |
| switch |
選擇語句 |
| synchronized |
表示同一時間只能由一個線程訪問的代碼塊 |
| this |
表示調用當前執行個體
或者調用另一個建構函式 |
| throw |
拋出異常 |
| throws |
定義方法可能拋出的異常 |
| transient |
修飾不要序列化的欄位 |
| try |
表示代碼塊要做異常處理或者和finally配合表示是否拋出異常都執行finally中的代碼 |
| void |
標記方法不返回任何值 |
| volatile |
標記欄位可能會被多個線程同時訪問,而不做同步 |
| while |
while迴圈 |
Java注釋
類似於C/C++,Java也支援單行以及多行注釋。注釋中的字元將被Java編譯器忽略。
public class HelloWorld { /* 這是第一個Java程式 *它將列印Hello World * 這是一個多行注釋的樣本 */ public static void main(String []args){ // 這是單行注釋的樣本 /* 這個也是單行注釋的樣本 */ System.out.println("Hello World"); }}Java 空行
空白行,或者有注釋的行,Java編譯器都會忽略掉。
繼承
在Java中,一個類可以由其他類派生。如果你要建立一個類,而且已經存在一個類具有你所需要的屬性或方法,那麼你可以將新建立的類繼承該類。
利用繼承的方法,可以重用已存在類的方法和屬性,而不用重寫這些代碼。被繼承的類稱為超類(super class),衍生類別稱為子類(subclass)。
介面
在Java中,介面可理解為對象間相互連信的協議。介面在繼承中扮演著很重要的角色。
介面只定義派生要用到的方法,但是方法的具體實現完全取決於衍生類別。
java基礎筆記