Wrapper กับค่า null
ต่างจากตัวแปร primitive ตรงที่ตัวแปร wrapper สามารถไม่ถูกกำหนดค่าเริ่มต้นได้ และจะมีค่าเป็น null ส่วนตัวแปร primitive ที่ไม่ได้กำหนดค่าเริ่มต้นจะถูกตั้งค่าเป็นค่าดีฟอลต์โดยอัตโนมัติ (เช่น 0 สำหรับ int) เนื่องจาก wrapper รองรับค่า null จึงช่วยให้ตรวจสอบได้ว่ามีการกำหนดค่าแล้วหรือยังก่อนนำไปใช้งาน ซึ่งตัวแปร primitive ทำแบบนี้ไม่ได้ ในแบบฝึกหัดนี้จะเห็นความแตกต่างระหว่างตัวแปร primitive และ wrapper object ที่ยังไม่ได้กำหนดค่าเริ่มต้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java
คำแนะนำการฝึกหัด
- ประกาศตัวแปรชนิด
intชื่อxโดยยังไม่ต้องกำหนดค่า - ประกาศตัวแปรชนิด
Integerชื่อyโดยยังไม่ต้องกำหนดค่า - แสดงค่าของ
xแม้ว่าจะยังไม่ได้กำหนดค่าเริ่มต้นให้กับมัน - ตรวจสอบว่า
yมีค่าเป็นnullหรือไม่
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
public class NullWithWrappers {
// Declare a primitive integer called x
static ____ ____;
// Declare a wrapper Integer called y
static ____ ____;
public static void main(String[] args) {
// Display x value
System.out.____(____);
System.out.println(y);
// Check if y has been initialized and is null
if (____ ____ ____) {
System.out.println("y is not initialized so take corrective steps here");
}
}
}