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.java C : > java HelloWorld Hello World
Gif 圖表示範:
![1476784742231644.gif java-HelloWorld.gif](http://img.php.cn/upload/image/168/523/819/1476784742231644.gif)
#基本語法
在寫Java程式時,應注意以下幾點:
#大小寫敏感:Java是大小寫敏感的,這意味著標識符Hello與hello是不同的。
類別名稱:對於所有的類別來說,類別名稱的首字母應該要大寫。如果類別名稱由若干單字組成,那麼每個單字的首字母應該大寫,例如 MyFirstJavaClass 。
方法名稱:所有的方法名稱都應該以小寫字母開頭。如果方法名含有若干單詞,則後面的每個單字首字母大寫。
來源檔名:原始檔名必須和類別名稱相同。當儲存檔案的時候,你應該使用類別名稱作為檔案名稱儲存(切記Java是大小寫敏感的),檔案名稱的後綴為.java。 (如果檔案名稱和類別名稱不相同則會導致編譯錯誤)。
主方法入口:所有的Java 程式由public static void main(String []args)方法開始執行。
Java標識符
Java所有的組成部分都需要一個名字。類別名稱、變數名以及方法名都被稱為標識符。
關於Java標識符,有以下幾點要注意:
所有的識別碼都應該以字母(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, MEDUIM, LARGE } FreshJuiceSize size; } public class FreshJuiceTest { public static void main(String []args){ FreshJuice juice = new FreshJuice(); juice.size = FreshJuice. FreshJuiceSize.MEDUIM ; } }
注意:列舉可以單獨宣告或宣告在類別裡面。方法、變數、建構子也可以在枚舉中定義。
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 | 匯入類別 |
測試一個物件是否是某個類別的實例 | |
#32位元整數數 | |
接口,一種抽象的類型,僅有方法和常數的定義 | |
64位元整數數 | |
表示方法用非java程式碼實作 | |
指派新的類別實例 | |
一系列相關類別組成一個套件 | |
表示私有字段,或方法等,只能從類別內部存取 | |
表示欄位只能透過類別或其子類別存取 | 子類別或是同一個套件內的其他類 |
表示共有屬性或方法 | |
方法傳回值 | |
16位元數字 | |
表示在類別層級定義,所有實例共享的 | |
浮點數比較使用嚴格的規則 | |
表示基底類別 | |
選擇語句 | |
表示同一時間只能由一個執行緒存取的程式碼區塊 | |
表示呼叫目前實例 | #或呼叫另一個建構子 |
throw | 拋出異常 |
throws | #定義方法可能拋出的例外 |
transient | 修飾不要序列化的欄位 |
表示程式碼區塊要做異常處理或和finally配合表示是否拋出異常都執行finally中的程式碼 | |
標記方法不回傳任何值 | |
標記欄位可能會被多個執行緒同時訪問,而不做同步 | |
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程式設計中的類別和物件。之後你將會對Java中的類別和物件有更清楚的認識。