Java#17 ขอบเขตของตัวแปร

ขอบเขตของตัวแปร” คือสิ่งที่ใช้กำหนดว่า ตัวแปรที่ประกาศขึ้นมา จะสามารถเรียกใช้งานจากที่ไหนได้บ้าง

 

ลองสร้างคลาส Calculator ขึ้นมา และประกาศตัวแปรไว้ 2 ตัวคือ number1 และ number2 มีชนิดข้อมูลเป็น int และมีการกำหนดการเข้าถึงแบบ private

ภาพที่ 1 ประกาศตัวแปรไว้ ระดับคลาส

 

จากภาพที่ 1 เราประกาศตัวแปร number1 และ number2 ไว้ในคลาส

 

ต่อมาลองสร้างเมธอด plus() ใช้ในการบวกเลข โดยเราจะประกาศตัวแปรชื่อ result มาไว้รับค่าผลบวก

ภาพที่ 2 ประกาศตัวแปรในเมธอด

 

จากนั้น เขียนคำสั่งให้นำตัวแปร number1 และ number2 มาบวกกัน และเก็บผลบวกไว้ที่ result

ภาพที่ 3 สั่งบวกเลข

 

หากเราสร้างเมธอด show() ขึ้นมา เพื่อทำหน้าที่แสดงผลบวก ที่เก็บอยู่ในตัวแปร result จะเกิดข้อผิดพลาดขึ้น

ภาพที่ 4 สั่งแสดงผล result

 

เมื่อนำเมาส์ไปชี้ที่รูปหลอดไฟสีเหลือง จะพบว่า โปรแกรมหาตัวแปร result ไม่เจอ

ภาพที่ 5 แสดงรายละเอียดข้อผิดพลาด

 

นั่นหมายความว่า การประกาศตัวแปร เอาไว้ในเมธอดนั้น เมธอดอื่น ๆ จะมองไม่เห็น และไม่สามารถเรียกใช้งานได้

 

ถ้าเราย้ายตัวแปร result ไปไว้ในระดับคลาส เมธอดต่าง ๆ ที่อยู่ภายในคลาสนั้น จะสามารถมองเห็น และเรียกใช้งานได้

 

ภาพที่ 6 ย้ายตัวแปร result

 

ลองกำหนดค่าเริ่มต้นให้ ตัวแปร number1 และ number2 เป็น 100 และ 200 ตามลำดับ

ภาพที่ 7 กำหนดค่าเริ่มต้นให้ตัวแปร

 

จากนั้นสร้างคลาส Main ขึ้นมาเพื่อทดสอบโปรแกรม โดยการสร้างออบเจ็กต์จากคลาส Calculator

ภาพที่ 8 สร้างออบเจ็กต์

 

เรียกใช้เมธอด plus() เพื่อบวกเลข และเรียกใช้เมธอด show() เพื่อแสดงผลบวก

ภาพที่ 9 เรียกใช้งานเมธอด

 

เมื่อกด F6 เพื่อสั่ง Run เราจะได้ผลลัพธ์ 300 คือผลบวกของ 100 และ 200 ตามค่าที่เรากำหนดให้กับตัวแปร

ภาพที่ 10 แสดงผลลัพธ์

 

 

สรุป

ตำแหน่งที่เราประกาศตัวแปรมี 2 ตำแหน่งคือ ประกาศไว้ในคลาส และประกาศเอาไว้ในเมธอด เราจะประกาศตัวแปรที่ต้องใช้งานร่วมกันเอาไว้ระดับคลาส ในขณะที่การประกาศตัวแปรเอาไว้ในเมธอด จะเป็นการประกาศขึ้นมาใช้งานชั่วคราวเท่านั้น เมื่อเมธอดทำงานเสร็จแล้ว ตัวแปรภายในเมธอดจะถูกทำลายไป

 

การประกาศตัวแปรระดับคลาส ค่าเริ่มต้นของตัวแปรจะเป็นค่าปริยาย (default) ตามชนิดของตัวแปรนั้น ๆ เราสามารถเรียกใช้งานตัวแปรเหล่านี้ได้เลย โดยไม่ต้องกำหนดค่าเริ่มต้นก่อน

 

แต่การประกาศตัวแปรในเมธอด จะไม่มีค่าปริยายกำหนดให้ตัวแปร เราจะต้องกำหนดค่าเริ่มต้นให้กับตัวแปร ก่อนเรียกใช้งานเสมอ ไม่อย่างนั้น จะเกิดข้อผิดพลาดขึ้นได้