เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

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");
		}
	}
}
แก้ไขและรันโค้ด