
Java 教程
- Java - 首頁
- Java - 概述
- Java - 歷史
- Java - 特性
- Java 與 C++
- JVM - Java 虛擬機器
- Java - JDK 與 JRE 與 JVM
- Java - HelloWorld 程式
- Java - 環境搭建
- Java - 基本語法
- Java - 變數型別
- Java - 資料型別
- Java - 型別轉換
- Java - Unicode 系統
- Java - 基本運算子
- Java - 註釋
- Java - 使用者輸入
- Java - 日期與時間
Java 控制語句
- Java - 迴圈控制
- Java - 決策制定
- Java - if-else
- Java - switch
- Java - for 迴圈
- Java - for-each 迴圈
- Java - while 迴圈
- Java - do-while 迴圈
- Java - break
- Java - continue
面向物件程式設計
- Java - OOPs 概念
- Java - 物件與類
- Java - 類屬性
- Java - 類方法
- Java - 方法
- Java - 變數作用域
- Java - 構造器
- Java - 訪問修飾符
- Java - 繼承
- Java - 聚合
- Java - 多型
- Java - 方法重寫
- Java - 方法過載
- Java - 動態繫結
- Java - 靜態繫結
- Java - 例項初始化塊
- Java - 抽象
- Java - 封裝
- Java - 介面
- Java - 包
- Java - 內部類
- Java - 靜態類
- Java - 匿名類
- Java - 單例類
- Java - 包裝類
- Java - 列舉
- Java - 列舉構造器
- Java - 列舉字串
Java 內建類
Java 檔案處理
Java 錯誤與異常
- Java - 異常
- Java - try-catch 塊
- Java - try-with-resources
- Java - 多重 catch 塊
- Java - 巢狀 try 塊
- Java - finally 塊
- Java - throw 異常
- Java - 異常傳播
- Java - 內建異常
- Java - 自定義異常
Java 多執行緒
- Java - 多執行緒
- Java - 執行緒生命週期
- Java - 建立執行緒
- Java - 啟動執行緒
- Java - 執行緒連線
- Java - 執行緒命名
- Java - 執行緒排程器
- Java - 執行緒池
- Java - 主執行緒
- Java - 執行緒優先順序
- Java - 守護執行緒
- Java - 執行緒組
- Java - 關閉鉤子
Java 同步
Java 網路程式設計
- Java - 網路程式設計
- Java - 套接字程式設計
- Java - URL 處理
- Java - URL 類
- Java - URLConnection 類
- Java - HttpURLConnection 類
- Java - Socket 類
- Java - 泛型
Java 集合
Java 介面
Java 資料結構
Java 集合演算法
高階 Java
- Java - 命令列引數
- Java - Lambda 表示式
- Java - 傳送郵件
- Java - Applet 基礎
- Java - Javadoc 註釋
- Java - 自動裝箱和拆箱
- Java - 檔案不匹配方法
- Java - REPL (JShell)
- Java - 多版本 Jar 檔案
- Java - 私有介面方法
- Java - 內部類菱形運算子
- Java - 多解析度影像 API
- Java - 集合工廠方法
- Java - 模組系統
- Java - Nashorn JavaScript
- Java - Optional 類
- Java - 方法引用
- Java - 函式式介面
- Java - 預設方法
- Java - Base64 編碼解碼
- Java - switch 表示式
- Java - Teeing Collectors
- Java - 微基準測試
- Java - 文字塊
- Java - 動態 CDS 歸檔
- Java - Z 垃圾收集器 (ZGC)
- Java - 空指標異常
- Java - 打包工具
- Java - 密封類
- Java - 記錄類
- Java - 隱藏類
- Java - 模式匹配
- Java - 簡潔的數字格式化
- Java - 垃圾回收
- Java - JIT 編譯器
Java 其他
- Java - 遞迴
- Java - 正則表示式
- Java - 序列化
- Java - 字串
- Java - Process API 增強
- Java - Stream API 增強
- Java - 增強 @Deprecated 註解
- Java - CompletableFuture API 增強
- Java - 流
- Java - 日期時間 API
- Java 8 - 新特性
- Java 9 - 新特性
- Java 10 - 新特性
- Java 11 - 新特性
- Java 12 - 新特性
- Java 13 - 新特性
- Java 14 - 新特性
- Java 15 - 新特性
- Java 16 - 新特性
Java APIs 與框架
Java 類引用
- Java - Scanner
- Java - 陣列
- Java - 字串
- Java - Date
- Java - ArrayList
- Java - Vector
- Java - Stack
- Java - PriorityQueue
- Java - LinkedList
- Java - ArrayDeque
- Java - HashMap
- Java - LinkedHashMap
- Java - WeakHashMap
- Java - EnumMap
- Java - TreeMap
- Java - IdentityHashMap
- Java - HashSet
- Java - EnumSet
- Java - LinkedHashSet
- Java - TreeSet
- Java - BitSet
- Java - Dictionary
- Java - Hashtable
- Java - Properties
- Java - Collection
- Java - Array
Java 有用資源
Java - 基本語法
當我們考慮一個 Java 程式時,它可以被定義為一組透過呼叫彼此方法進行通訊的物件的集合。讓我們簡要了解一下類、物件、方法和例項變數的含義。
物件 - 物件具有狀態和行為。例如:狗具有狀態——顏色、名字、品種,以及行為,例如搖尾巴、吠叫、吃東西。物件是類的例項。
類 - 類可以定義為描述其型別物件支援的行為/狀態的模板/藍圖。
方法 - 方法基本上是一種行為。一個類可以包含許多方法。在方法中編寫邏輯、操作資料和執行所有操作。
例項變數 - 每個物件都具有自己唯一的一組例項變數。物件的狀體是由分配給這些例項變數的值建立的。
第一個 Java 程式
讓我們來看一個簡單的程式碼,它將列印Hello World。
示例
public class MyFirstJavaProgram { /* This is my first java program. * This will print 'Hello World' as the output */ public static void main(String []args) { System.out.println("Hello World"); // prints Hello World } }
讓我們看看如何儲存檔案、編譯和執行程式。請按照以下步驟操作:
開啟記事本並新增上面的程式碼。
將檔案儲存為:MyFirstJavaProgram.java。
開啟命令提示符視窗,並轉到儲存類的目錄。假設是 C:\。
鍵入“javac MyFirstJavaProgram.java”並按 Enter 鍵編譯程式碼。如果程式碼中沒有錯誤,命令提示符將帶您進入下一行(假設:已設定 path 變數)。
現在,鍵入“java MyFirstJavaProgram”執行程式。
您將能夠看到視窗上列印的“Hello World”。
輸出
C:\> javac MyFirstJavaProgram.java C:\> java MyFirstJavaProgram Hello World
基本語法
關於 Java 程式,務必記住以下幾點。
大小寫敏感性 - Java 區分大小寫,這意味著識別符號Hello和hello在 Java 中具有不同的含義。
類名 - 所有類名的第一個字母都應大寫。如果使用多個單詞來構成類名,則每個內部單詞的第一個字母都應大寫。
示例 - class MyFirstJavaClass
方法名 - 所有方法名都應以小寫字母開頭。如果使用多個單詞來構成方法名,則每個內部單詞的第一個字母都應大寫。
示例 - public void myMethodName()
程式檔名 - 程式檔名應與類名完全匹配。
儲存檔案時,應使用類名儲存它(記住 Java 區分大小寫),並在名稱末尾附加“.java”(如果檔名和類名不匹配,則程式將無法編譯)。
但是請注意,如果您在檔案中沒有公共類,則檔名可以與類名不同。在檔案中也不強制要求有公共類。
示例 - 假設“MyFirstJavaProgram”是類名。然後應將檔案儲存為“MyFirstJavaProgram.java”
public static void main(String args[]) - Java 程式處理從 main() 方法開始,它是每個 Java 程式的必備部分。
Java 識別符號
所有 Java 元件都需要名稱。用於類、變數和方法的名稱稱為識別符號。
在 Java 中,關於識別符號,有幾點需要注意,如下所示:
所有識別符號都應該以字母(A 到 Z 或 a 到 z)、貨幣字元 ($) 或下劃線 (_) 開頭。
第一個字元之後,識別符號可以包含任何字元組合。
關鍵字不能用作識別符號。
最重要的是,識別符號區分大小寫。
合法識別符號示例:age, $salary, _value, __1_value。
非法識別符號示例:123abc, -salary。
Java 修飾符
與其他語言一樣,可以使用修飾符來修改類、方法等。修飾符分為兩類:
訪問修飾符 − default、public、protected、private
非訪問修飾符 − final、abstract、strictfp
我們將在下一節中更詳細地介紹修飾符。
Java 變數
以下是Java 中變數的型別:
- 區域性變數
- 類變數(靜態變數)
- 例項變數(非靜態變數)
Java 陣列
陣列是儲存多個相同型別變數的物件。但是,陣列本身是堆上的一個物件。我們將在接下來的章節中學習如何宣告、構造和初始化。
Java 列舉
列舉在 Java 5.0 中引入。列舉將變數限制為只有幾個預定義值中的一個。此列舉列表中的值稱為列舉。
使用列舉可以減少程式碼中的錯誤數量。
例如,如果我們考慮一個鮮榨果汁店的應用程式,則可以將杯子大小限制為小杯、中杯和大杯。這將確保不允許任何人訂購除小杯、中杯或大杯以外的任何尺寸。
示例
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 ; System.out.println("Size: " + juice.size); } }
輸出
以上示例將產生以下結果:
Size: MEDIUM
注意 − 列舉可以單獨宣告或在類內宣告。方法、變數、建構函式也可以在列舉中定義。
Java 關鍵字
以下列表顯示了 Java 中的保留字。這些保留字不能用作常量或變數或任何其他識別符號名稱。
序號 | 保留字及描述 |
---|---|
1 | abstract
根據字典,抽象是指處理思想而不是事件的特性。 |
2 | assert
assert 關鍵字用於在 Java 中定義斷言。斷言是 Java 中的一個語句,它確保程式中所做的任何假設的正確性。 |
3 | boolean
boolean 資料型別是 Java 支援的八種基本資料型別之一。它提供了一種建立 boolean 型別變數的方法,這些變數可以接受 true 或 false 的 boolean 值。 |
4 | break
Java 程式語言中的break語句有以下兩種用法:
|
5 | byte
byte 資料型別是 Java 支援的八種基本資料型別之一。它提供了一種建立 byte 型別變數的方法,這些變數可以接受 byte 值。 |
6 | case
case關鍵字是switch語句的一部分,它允許測試變數與值的列表是否相等。 |
7 | catch
異常(或異常事件)是在程式執行期間出現的錯誤。 |
8 | char
char 資料型別是 Java 支援的八種基本資料型別之一。 |
9 | class
Java 是一種面向物件的語言。作為一種具有面向物件特性的語言。 |
10 | const
final關鍵字用於在 Java 中定義常量值或 final 方法/類。 |
11 | continue
continue關鍵字可用於任何迴圈控制結構。 |
12 | default
default關鍵字是switch語句的一部分,它允許測試變數與值的列表是否相等。 |
13 | do
do...while迴圈類似於while迴圈,不同之處在於do...while迴圈至少執行一次。 |
14 | double
double 資料型別是 Java 支援的八種基本資料型別之一。 |
15 | if
if語句後面可以跟一個可選的else語句,當布林表示式為false時執行。 |
16 | enum
Java Enum類是所有 Java 語言列舉型別的公共基類。 |
17 | extends
extends是用於繼承類屬性的關鍵字。以下是extends關鍵字的語法。 |
18 | final
final關鍵字用於在 Java 中定義常量值或 final 方法/類。 |
19 | finally
finally關鍵字用於定義finally塊。finally塊位於try塊或catch塊之後。無論是否發生異常,finally塊中的程式碼都會始終執行。 |
20 | float
float 資料型別是 Java 支援的八種基本資料型別之一。它提供了一種建立 float 型別變數的方法,這些變數可以接受 float 值。 |
21 | for
for迴圈是一種重複控制結構,允許您有效地編寫需要執行特定次數的迴圈。 |
22 | goto
Java目前不支援goto語句。它作為保留關鍵字以備將來使用。作為替代方案,Java 支援帶有 break 和 continue 語句的標籤。 |
23 | if
if語句由一個布林表示式和一個或多個語句組成。 |
24 | implements
通常,implements關鍵字與類一起使用以繼承介面的屬性。 |
25 | import
import關鍵字用於包的上下文中。 |
26 | instanceof
instanceof關鍵字是一個運算子,僅用於物件引用變數。 |
27 | int
int 資料型別是 Java 支援的八種基本資料型別之一。 |
28 | interface
介面是 Java 中的一種引用型別。它類似於類。它是抽象方法的集合。 |
29 | long
long 資料型別是 Java 支援的八種基本資料型別之一。 |
30 | native |
31 | new |
32 | package
在 Java 中使用包是為了防止命名衝突,控制訪問,使查詢/定位和使用類、介面、列舉和註釋更容易等。 |
33 | private
宣告為 private 的方法、變數和建構函式只能在其宣告的類中訪問。 |
34 | protected
protected 訪問修飾符不能應用於類和介面。 |
35 | public
宣告為 public 的類、方法、建構函式、介面等可以從任何其他類訪問。 |
36 | return |
37 | short
透過為變數分配不同的資料型別,可以在這些變數中儲存整數、小數或字元。 |
38 | static
static關鍵字用於建立獨立於為類建立的任何例項而存在的變數。 |
39 | strictfp |
40 | super
super關鍵字類似於this關鍵字。 |
41 | switch
switch語句允許測試變數與值的列表是否相等。 |
42 | synchronized |
43 | this
this關鍵字是一個非常重要的關鍵字,用於標識物件。以下是此關鍵字的用法。 |
44 | throw
如果方法不處理已檢查異常,則該方法必須使用throws關鍵字宣告它。 |
45 | transient
序列化是一個概念,我們可以使用它將物件的狀太寫入位元組流中,以便我們可以透過網路傳輸它(使用JPA和RMI等技術)。 |
46 | try
方法使用try和catch關鍵字的組合來捕獲異常。 |
47 | void |
48 | volatile |
49 | while
Java程式語言中的while迴圈語句重複執行目標語句,只要給定的條件為true。 |
Java中的註釋
Java支援單行和多行註釋,與C和C++非常相似。Java編譯器會忽略任何註釋中所有可用的字元。
示例
public class MyFirstJavaProgram { /* This is my first java program. * This will print 'Hello World' as the output * This is an example of multi-line comments. */ public static void main(String []args) { // This is an example of single line comment /* This is also an example of single line comment. */ System.out.println("Hello World"); } }
輸出
Hello World
使用空行
僅包含空白字元(可能帶有註釋)的行稱為空行,Java完全忽略它。
繼承
在Java中,類可以從類派生。基本上,如果您需要建立一個新類,並且這裡已經有一個類包含您需要的一些程式碼,那麼可以從已經存在的程式碼派生您的新類。
Java繼承允許您重用現有類的欄位和方法,而無需在新類中重寫程式碼。在這種情況下,現有類稱為超類,派生類稱為子類。
介面
在Java語言中,介面可以定義為物件之間如何相互通訊的契約。在繼承的概念中,介面起著至關重要的作用。
介面定義了派生類(子類)應該使用的方法。但是方法的實現完全取決於子類。
接下來是什麼?
下一節解釋Java程式設計中的物件和類。在本節結束時,您將能夠清楚地瞭解Java中的物件和類是什麼。