學習Java進行Android應用開發——完整指南
Android 基於 Linux 作業系統和開源軟體。Android 用於構建移動應用程式。它由谷歌領導的開放手機聯盟和其他公司開發。谷歌於 2007 年釋出了 Android 軟體開發工具包 (SDK) 的第一個測試版,而第一個商業版本 Android 1.0 於 2008 年 9 月釋出。
Android 應用程式主要使用 Android 軟體工具包用 Java 語言構建。終端使用者可以從 Google Play、SlideME、Opera Mobile Store、Mobango、F-droid 和 Amazon Appstore 等商店下載 Android 應用程式。
什麼是 Java?
為了促進卓越高階程式設計選項的建立和實現,Sun Microsystems(現由 Oracle 領導)的開發團隊構思了 Java。Java 在各種作業系統(如 Windows、Linux 和 MacOS)中具有完全的傳播性——這些架構事實使 Java 成為平臺無關的語言。Java 程式執行必不可少的是 JVM 中固有的功能,包括載入、驗證和程式碼執行。Java 的成功建立是基於面向物件的理念,支援封裝、多型性和繼承等重要的面向物件概念。Java 不支援多重繼承,限制了其純粹的面向物件特性。
用於 Android 應用開發的 Java
本文包含學習使用 Java 進行 Android 應用開發所需的所有主題。它們如下所示。
環境設定。
面向物件程式設計 (OOP) 概念
Java 語法
Java 識別符號
Java 中的資料型別
什麼是變數及其作用域
Java 中的決策語句
Java 中的型別轉換
Java 中的運算子
Java 中的字串
Java 中的方法
Java 中的異常處理
Java 中的抽象類和介面
環境設定
編寫 Java 程式需要 JDK(Java 開發工具包)。此工具包包括 JRE(Java 執行時環境)和開發工具。要安裝 JDK,請按照以下步驟操作:
確保從其官方網站獲取最新版本的 JDK,並記下您計算機的作業系統(無論是 Mac OS X、Windows 還是 Linux),以確保您下載的版本與您的作業系統相容,從而最大限度地提高可用性。
安裝 JDK。
在下載資料夾中找到安裝檔案後執行安裝程式。
設定 JDK 路徑
定義可執行檔案和類檔案將位於的位置。
OOPs 概念
面向物件程式設計的基本構建塊是類和物件。這種結構使程式碼更易於重用和閱讀。面向物件程式設計的主要概念如下:
物件
類
抽象
繼承
多型性
封裝
物件
類的例項稱為物件。它們具有狀態和行為。
例如,動物物件具有顏色之類的狀態和進食之類的行為。
在使用程式語言時,日常物件(如椅子、桌子或筆)可以轉換為程式碼中的物件。為了為這些物理實體的程式碼表示分配記憶體,程式設計師可以使用堆中位於 new() 方法。
類
類是物件的集合和記憶體。建立類時始終使用關鍵字 class。
抽象
在抽象中,實現(即內部資訊)將被隱藏,並且僅顯示所需的資訊。它降低了程式設計的複雜性和工作量。為了實現抽象,我們在程式中使用抽象類和介面。
繼承
從父類獲取屬性到子類稱為繼承。它支援方法的可重用性。
多型性
在多型性中,單個方法可以操作不同型別的物件。當我們有很多透過繼承相互關聯的類時,就會發生這種情況。方法過載和重寫是多型性的例子。多型性主要有兩種不同型別:
執行時多型性:
可以透過方法重寫實現。它在執行時解析。
編譯時多型性:
可以透過方法過載實現。它在編譯時解析。
封裝
將資料和程式碼繫結在一起的過程稱為封裝。它防止未經授權的使用者訪問。
Java 語法
程式設計師在編寫 Java 程式碼語法時應遵循以下一些規則:
每行程式碼必須位於類內。
類名的第一個字母必須大寫。
主方法是必需的。
print 方法必須位於主方法內。
Java 識別符號
在 Java 中,變數、函式、類、介面或其他程式元素可以用名稱(稱為識別符號)來標識。
Java 中的資料型別
在計算機程式語言等方面,資料通常分為兩種主要型別:原始型別和非原始型別。根據定義,前者包括 byte、short、int、long、float、double、boolean 和 char。
什麼是變數和作用域
變數用於儲存資料值。主要有五種型別的變數,如下所示:
**int** - 包含整數值。
**float** - 包含帶小數的浮點數。
**String** - 包含文字。
**char** - 包含單個字元值。
**boolean** - 真/假。
Java 中的決策語句
控制語句 (if-else、if、switch、break、continue、jump) -
這些語句根據特定條件控制程式執行的流程。
if 語句
只有當條件為真時,程式碼才會執行。
語法
if(condition){ //Code }
示例
public class Student { public static void main(String[] args) { int marks=20; if(marks>13){ System.out.print("Pass"); } } }
輸出
Pass
if-else 語句
如果條件為真,則執行 if 塊的程式碼;否則,執行 else 塊的程式碼。
語法
if(condition){ //if the condition is true this code will executed }else{ // if the condition is false this code will executed }
示例
public class IfElseExample { public static void main(String[] args) { int number=15; if(number%2==0){ System.out.println("Even Number"); }else{ System.out.println("Odd Number"); } } }
輸出
Odd Number
Java 中的 switch 語句
switch 語句根據表示式的值強制控制跳轉到其語句體中的一個帶標籤的語句。
switch 語句的規則:
可以透過簡單地應用條件檢查來應用任意數量的 case,但請記住不允許重複的 case 值。
case 的值必須與 switch 變數的資料型別相同。
case 的值必須是常量或字面量。不允許使用變數。
default 語句可以放置在 switch 塊中的任何位置,並且是可選的。如果 default 語句不在末尾,則在 default 語句之後保留 break 語句將阻止執行後續的 case 語句。
不需要 break 語句。如果省略 break 語句,執行將繼續到下一個 case。
要在語句序列的末尾結束,請在 switch 內使用 break 語句。
語法
switch(expression){ case value1: //code to be executed; break; //optional case value2: //code to be executed; break; //optional ...... default: code to be executed if all cases are not matched; }
示例
public class Switch { public static void main(String[] args) { int number=10; switch(number){ case 10: System.out.println("10"); break; case 20: System.out.println("20"); break; case 30: System.out.println("30"); break; default:System.out.println("Not in 10, 20 or 30"); } } }
輸出
10
Java 中的 for-each
它用於像 while do-while 迴圈一樣遍歷程式。
語法
for(data_type var : array) { //code }
示例
public class ForEach{ public static void main(String args[]){ int arr[]={1,2,3,4}; for(int i:arr){ System.out.println(i); } } }
輸出
1 2 3 4
Java 中的型別轉換
它是將一種資料型別轉換為另一種資料型別的方法。主要有兩種型別:
**隱式轉換** - 將較小的資料型別轉換為較大的資料型別。例如 byte -> short
**顯式轉換** - 將較大的資料型別轉換為較小的資料型別。例如 double -> float。
Java 中的運算子
運算子用於對變數和值執行運算。主要有以下五種不同型別:
算術運算子:
這些用於執行數學運算。
賦值運算子:
這些運算子用於為變數賦值。例如加法 (+) 、減法 (-)。
比較運算子:
這些運算子用於比較值或變數。例如小於 (<) 或大於 (>)。
邏輯運算子:
此運算子用於真/假。
位運算子:
位運算子是用於對數字的組成位執行操作的工具。它們適用於所有整型,包括 char、short 和 int。它們用於更新和搜尋二叉索引樹。
Java 中的字串
Java String 類提供了一系列允許操作字串的方法。這些包括 compare()、concat()、equals()、split()、length()、replace()、compareTo()、intern() 和 substring()。本質上,字串是一個表示字元序列的物件。它可以透過兩種方法建立,如下所示:
字串字面量
它使用雙引號建立字串。字串將儲存在字串常量池記憶體中。
例如:
String s = "SME"
new 關鍵字
它使用 new 關鍵字建立字串。它將在堆記憶體中分配字串。
例如:
String s = new String("SME")
Java 中的方法
方法是用於執行函式的程式碼塊。主要有兩種型別:
預定義方法
這些方法定義在 Java 類庫中。例如 length()、equals()、compareTo()、sqrt() 等。
示例
public class Example{ public static void main(String[] args) { System.out.print("The maximum number is: " + Math.min(5,8)); } }
輸出
The maximum number is: 5
使用者定義方法
這些方法由使用者定義,並滿足使用者需求。
示例
public class OddEven { public static void main (String args[]) { Scanner find = new Scanner(System.in); System.out.print("Enter the number: "); int num = find.nextInt(); findOddEven(num); } public static void findOddEven(int num) { if(num%2==0) System.out.println(num+" is even"); else System.out.println(num+" is odd"); } }
輸出
Enter the number: 4 4 is even
Java 中的異常處理
Java 的異常處理是一種有效的處理執行時錯誤並保持應用程式正常流程的方法。
Java 中的異常
這是程式執行期間發生的意外錯誤。程式能夠檢測和處理異常。當方法中發生異常時,會建立一個物件。異常物件就是此項的名稱。它包含有關異常的詳細資訊,包括其名稱、描述以及發生異常時程式的狀態。
異常型別
Java 定義了許多與不同類庫相關的異常型別。Java 還允許使用者建立自定義異常。所有異常和錯誤都是 Throwable 類的子類。
內建異常
已檢查異常 −
編譯時異常也稱為已檢查異常,因為編譯器在構建時會檢查它們。例如ClassNotFoundException。
未檢查異常 −
這些異常在編譯期間不會被編譯器檢查。例如ArithmeticException。(注意:原文拼寫錯誤已更正為ArithmeticException)
使用者定義異常
這些異常由使用者建立。它將透過識別有意義的錯誤來完成程式執行。
抽象類和介面
抽象類
在Java中,抽象類是在其宣告中聲明瞭abstract關鍵字的類。抽象方法(沒有方法體的方法)和非抽象方法(有方法體的方法)都是可能的。
它需要被擴充套件並實現其方法。它不能被例項化。
語法
abstract class class-name { Non-abstract methods } { Abstract methods(); }
示例
abstract class Car{ abstract void run(); } public class Dezire extends Car{ void run() { System.out.println("running safely"); } public static void main(String args[]){ Car obj = new Dezire(); obj.run(); } }
輸出
Running safely
Java中的介面
在Java中,類的藍圖稱為介面。它具有抽象方法和靜態常量。
Java使用介面作為實現抽象的工具。Java介面只能包含抽象方法;不允許方法體。在Java中,它用於實現多重繼承和抽象。
語法
Interface interface_name { Variable; Method; }
示例
interface Animal { public void sound(); public void eat(); } public class Dog implements Animal { public void sound() { System.out.println("bark"); } public void eat() { System.out.println("bhau"); } }interface Animal { public void sound(); public void eat(); } class Main { public static void main(String[] args) { Dog myDog = new Dog(); // Create a dog object myDog.animalSound(); myDog.eat(); } }
輸出
bark bhau