การใช้แพ็กเกจ

ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

Jim White

Java Developer

แพ็กเกจ Java คืออะไร?

  • แพ็กเกจช่วยจัดระเบียบโค้ด Java
    • แพ็กเกจทำหน้าที่เหมือนโฟลเดอร์หรือไดเรกทอรี
    • รวบรวมโค้ด Java ที่เกี่ยวข้องไว้ด้วยกัน (คลาส อินเทอร์เฟซ enum ฯลฯ)
  • เหมือนโฟลเดอร์เก็บไฟล์
    • แต่ละแพ็กเกจมีชื่อของตัวเอง

แพ็กเกจ Java เปรียบเหมือนโฟลเดอร์และตู้เก็บเอกสารสำหรับจัดระเบียบโค้ด

1 Image from https://commons.wikimedia.org/wiki/File:File_Cabinet.jpg
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

ประเภทของแพ็กเกจ

  • แพ็กเกจในตัว (Built-in packages)
    • เป็นส่วนหนึ่งของ Java
    • ชื่อขึ้นต้นด้วย "java" หรือ "javax"
  • แพ็กเกจที่ผู้ใช้กำหนดเอง (User defined packages)
    • แพ็กเกจที่เราสร้างขึ้นเอง
    • แพ็กเกจที่ได้รับจากบุคคลที่สาม
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

การตั้งชื่อแพ็กเกจ

  • ชื่อแพ็กเกจมีรูปแบบที่กำหนดไว้
    • เขียนเป็นตัวพิมพ์เล็กทั้งหมด
    • ใช้จุด (.) คั่นส่วนของชื่อ
  • แพ็กเกจในตัว
    • ขึ้นต้นด้วย java หรือ javax
    • ส่วนที่เหลือของชื่อบ่งบอกวัตถุประสงค์
  • ชื่อแพ็กเกจที่ผู้ใช้กำหนดเอง
    • ขึ้นต้นด้วยโดเมนขององค์กรที่เขียนกลับหลัง
    • ส่วนที่เหลือของชื่อบ่งบอกฟังก์ชันการทำงาน
  • ตัวอย่างแพ็กเกจในตัว

    java.security
    java.time
    
  • ตัวอย่างชื่อแพ็กเกจที่ผู้ใช้กำหนดเอง

    com.mycompany.myproject
    com.mycompany.myproject.account
    com.mycompany.myproject.controller
    com.mycompany.myproject.ui
    
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

แพ็กเกจในตัว

แพ็กเกจในตัวที่ใช้บ่อย

แพ็กเกจ เนื้อหา/ความสามารถ
java.lang คลาสพื้นฐานของภาษา Java
java.io การรับและส่งออกข้อมูล
java.util.logging เฟรมเวิร์กสำหรับ logging
java.math การคำนวณจำนวนเต็มและทศนิยมความแม่นยำสูง
java.net การทำงานด้านเครือข่าย
java.util วันที่/เวลา และโครงสร้างข้อมูล เช่น Linked List, Dictionary
java.security เฟรมเวิร์กด้านความปลอดภัย
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

java.math

  • java.math มีคลาสสำหรับการคำนวณทางคณิตศาสตร์
    • ใช้ในงานเข้ารหัส วิทยาศาสตร์ และการเงิน
  • BigInteger สำหรับแทนจำนวนเต็มขนาดใหญ่
    • ใหญ่เกินกว่าที่ int หรือ long รองรับได้
    • รองรับจำนวนเต็มที่มีหลักเกือบไม่จำกัด
  • BigDecimal สำหรับแทนทศนิยมขนาดใหญ่หรือเล็กมาก
    • แก้ปัญหาความคลาดเคลื่อนของการปัดเศษที่เกิดกับ float หรือ double
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

การใช้แพ็กเกจ

  • ใช้ import ตามด้วยชื่อแพ็กเกจที่ด้านบนของไฟล์
import java.math.BigInteger;
public class HelloWorld {
  BigInteger acct = new BigInteger("123");
}
  • แพ็กเกจอาจมีหลายชนิด
    • ใช้ * เพื่อ import ทุกชนิดในแพ็กเกจ
import java.math.*;
public class HelloWorld {
  BigInteger acct = new BigInteger("123");
  BigDecimal pi = new BigDecimal("3.14");
}
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

BigInteger & BigDecimal จาก java.math

  • BigInteger และ BigDecimal ทำหน้าที่เป็น wrapper สำหรับตัวเลขขนาดใหญ่
  • สร้างได้จาก String หรือค่าตัวเลข
  • มีเมธอด add, subtract, multiply และ divide
  • มีเมธอดเพิ่มเติม เช่น 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

เมธอด คำอธิบาย
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

ไม่จำเป็นต้อง import

  • สำคัญ — แพ็กเกจ java.lang ถูก import อัตโนมัติ
    • การใช้สิ่งใดก็ตามจาก java.lang ไม่จำเป็นต้องมี import
  • java.lang มี System, String, wrapper class และ Exception
    • นั่นคือเหตุผลที่เราใช้องค์ประกอบพื้นฐานของภาษาได้โดยไม่ต้องเห็น import เลย
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

มาฝึกกันเถอะ!

ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

Preparing Video For Download...