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 } }

下麵將逐步介紹如何保存、編譯以及運行這個程式:

  • 打開代碼編輯器,把上面的代碼添加進去;
  • 把檔案名保存為:HelloWorld.java;
  • 打開 cmd 命令窗口,進入目標檔所在的位置,假設是 C:\
  • 在命令行窗口輸入 javac HelloWorld.java 按下回車鍵編譯代碼。如果代碼沒有錯誤,cmd 命令提示符會進入下一行(假設環境變數都設置好了)。
  • 再鍵輸入 java HelloWorld 按下回車鍵就可以運行程式了

你將會在窗口看到 Hello World

C : > javac HelloWorld.java
C : > 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, static, synchronized

在後面的章節中我們會深入討論 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 關鍵字。這些保留字不能用於常量、變數、和任何識別字的名稱。

類別 關鍵字 說明
訪問控制 private 私有的
protected 受保護的
public 公共的
類、方法和變數修飾符 abstract 聲明抽象
class
extends 擴充,繼承
final 最終值,不可改變的
implements 實現(介面)
interface 介面
native 本地,原生方法(非 Java 實現)
new 新,創建
static 靜態
strictfp 嚴格,精准
synchronized 線程,同步
transient 短暫
volatile 易失
程式控制語句 break 跳出迴圈
case 定義一個值以供 switch 選擇
continue 繼續
default 默認
do 運行
else 否則
for 迴圈
if 如果
instanceof 實例
return 返回
switch 根據值選擇執行
while 迴圈
錯誤處理 assert 斷言運算式是否為真
catch 捕捉異常
finally 有沒有異常都執行
throw 拋出一個異常對象
throws 聲明一個異常可能被拋出
try 捕獲異常
包相關 import 引入
package
基本類型 boolean 布爾型
byte 位元組型
char 字元型
double 雙精度浮點
float 單精確度浮點
int 整型
long 長整型
short 短整型
變數引用 super 父類,超類
this 本類
void 無返回值
保留關鍵字 goto 是關鍵字,但不能使用
const 是關鍵字,但不能使用
null

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 編程中的類和對象。之後你將會對 Java 中的類和對象有更清楚的認識。