1. 程式人生 > >Java 學習(二)—— 基礎語法(轉)

Java 學習(二)—— 基礎語法(轉)

Java 基礎語法

一個Java程式可以認為是一系列物件的集合,而這些物件通過呼叫彼此的方法來協同工作。下面簡要介紹下類、物件、方法和例項變數的概念。

  • 物件:物件是類的一個例項,有狀態和行為。例如,一條狗是一個物件,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
  • :類是一個模板,它描述一類物件的行為和狀態。
  • 方法:方法就是行為,一個類可以有很多方法。邏輯運算、資料修改以及所有動作都是在方法中完成的。
  • 例項變數:每個物件都有獨特的例項變數,物件的狀態由這些例項變數的值決定。

第一個Java程式

下面看一個簡單的Java程式,它將列印字串 Hello World

public class MyFirstJavaProgram {
   /* 第一個Java程式.  
    * 它將列印字串 Hello World
    */
    public static void main(String []args) {
       System.out.println("Hello World"); // 列印 Hello World
    }
} 

下面將逐步介紹如何儲存、編譯以及執行這個程式:

  • 開啟Notepad,把上面的程式碼新增進去;
  • 把檔名儲存為:MyFirstJavaProgram.java;
  • 開啟cmd命令視窗,進入目標檔案所在的位置,假設是C:\
  • 在命令列視窗鍵入 javac MyFirstJavaProgram.java  按下enter鍵編譯程式碼。如果程式碼沒有錯誤,cmd命令提示符會進入下一行。(假設環境變數都設定好了)。
  • 再鍵入java MyFirstJavaProgram 按下Enter鍵就可以執行程式了

你將會在視窗看到 Hello World

C : > javac MyFirstJavaProgram.java
C : > java MyFirstJavaProgram 
Hello World

基本語法

編寫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, 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 MyFirstJavaProgram{
   /* 這是第一個Java程式
    *它將列印Hello World
    * 這是一個多行註釋的示例
    */
    public static void main(String []args){
       // 這是單行註釋的示例
       /* 這個也是單行註釋的示例 */
       System.out.println("Hello World"); 
    }
} 

Java 空行

空白行,或者有註釋的的行,Java編譯器都會忽略掉。


繼承

在Java中,一個類可以由其他類派生。如果你要建立一個類,而且已經存在一個類具有你所需要的屬性或方法,那麼你可以將新建立的類繼承該類。

利用繼承的方法,可以重用已存在類的方法和屬性,而不用重寫這些程式碼。被繼承的類稱為超類(super class),派生類稱為子類(subclass)。

介面

在Java中,介面可理解為物件間相互通訊的協議。介面在繼承中扮演著很重要的角色。

介面只定義派生要用到的方法,但是方法的具體實現完全取決於派生類。