使用套件

Java 的資料型別與例外狀況

Jim White

Java Developer

什麼是 Java 套件?

  • 套件用來組織 Java 程式碼
    • 套件就像檔案資料夾
    • 將相關的 Java 程式碼(類別、介面、列舉等)放在一起
  • 類似檔案資料夾
    • 每個套件都有名稱

Java 套件就像用來整理程式碼的檔案夾與檔案櫃

1 Image from https://commons.wikimedia.org/wiki/File:File_Cabinet.jpg
Java 的資料型別與例外狀況

套件類型

  • 內建套件
    • Java 的一部分
    • 名稱以「java」或「javax」開頭
  • 自訂套件
    • 我們自行定義的套件
    • 從第三方取得的套件
Java 的資料型別與例外狀況

套件命名

  • 套件名稱有慣例
    • 一律小寫
    • 以句點(.)分隔各部分
  • 內建套件
    • javajavax 開頭
    • 其餘部分暗示用途
  • 自訂套件名稱
    • 以組織網域的反向開頭
    • 其餘部分暗示功能
  • 內建套件範例

    java.security
    java.time
    
  • 自訂套件名稱範例

    com.mycompany.myproject
    com.mycompany.myproject.account
    com.mycompany.myproject.controller
    com.mycompany.myproject.ui
    
Java 的資料型別與例外狀況

內建套件

一些常用的內建套件

Package 內容/提供功能
java.lang 基本語言支援類別
java.io 輸入/輸出作業
java.util.logging 記錄(logging)架構
java.math 高精度整數與小數運算
java.net 網路作業
java.util 日期/時間與資料結構(如 Linked List、Dictionary)及其他支援
java.security 安全性架構
Java 的資料型別與例外狀況

java.math

  • java.math 提供算術相關類別
    • 用於密碼學、科學與貨幣應用
  • BigInteger 表示大整數
    • 大於 intlong 可處理的整數
    • 可處理幾乎無限位數的整數。
  • BigDecimal 表示非常大或非常小的浮點數
    • 可處理 floatdouble 可能出現的進位誤差
Java 的資料型別與例外狀況

使用套件

  • 在檔案頂端使用 import 加上套件名稱
import java.math.BigInteger;
public class HelloWorld {
  BigInteger acct = new BigInteger("123");
}
  • 套件可包含多種型別。
    • * 匯入該套件中所有型別
import java.math.*;
public class HelloWorld {
  BigInteger acct = new BigInteger("123");
  BigDecimal pi = new BigDecimal("3.14");
}
Java 的資料型別與例外狀況

java.math 的 BigInteger 與 BigDecimal

  • BigIntegerBigDecimal 是大數的包裝類別
  • String 或數值來建構它們
  • 內建 addsubtractmultiplydivide 方法
  • 也有如 pow(次方)等方法
// Imports go at the top of the class
import java.math.BigInteger;
import java.math.BigDecimal;

// Create BigInteger or BigDecimal with String
BigInteger big = new BigInteger("1000");
BigInteger ten = new BigInteger("10");
BigDecimal pi = new BigDecimal("3.14");
// Using a primitive to create BigDecimal
BigDecimal one = new BigDecimal(1.0);
BigInteger x = big.add(ten); // = 1010
BigDecimal y = pi.add(one); // = 4.14
BigInteger bigSqr = big.pow(2); // = 1000000
BigDecimal piCubed = pi.pow(3); // = 30.959144
Java 的資料型別與例外狀況

BigInteger 與 BigDecimal 的方法

Method 說明
abs() 整數的絕對值
add(x) 將 x 加到整數或小數
divide(x) 以 x 除該整數或小數
multiply(x) 以 x 乘該整數或小數
negate() 取該整數或小數的相反數
pow(int x) 將該整數或小數提升為 x 次方
subtract(x) 從該整數或小數減去 x
1 See https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html and https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html
Java 的資料型別與例外狀況

不需匯入的情況

  • 重點java.lang 會自動匯入。
    • 使用 java.lang 裡的任何成員都不需額外匯入
  • java.lang 包含 SystemString、各種包裝類別與 Exception
    • 這說明為何你能在未見到匯入時,就學習並使用基礎語言元素。
Java 的資料型別與例外狀況

一起來練習吧!

Java 的資料型別與例外狀況

Preparing Video For Download...