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

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

 

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

TH-JAVA Quick Start Java -17-1

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

 

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

 

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

TH-JAVA Quick Start Java -17-2

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

 

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

TH-JAVA Quick Start Java -17-3

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

 

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

TH-JAVA Quick Start Java -17-4

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

 

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

TH-JAVA Quick Start Java -17-5

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

 

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

 

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

 

TH-JAVA Quick Start Java -17-6

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

 

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

TH-JAVA Quick Start Java -17-7

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

 

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

TH-JAVA Quick Start Java -17-8

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

 

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

TH-JAVA Quick Start Java -17-9

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

 

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

TH-JAVA Quick Start Java -17-10

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

 

 

สรุป

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

 

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

 

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

 

Comments

comments

ธมนวรรณ มณีจันทร์

เป้าหมาย : "พัฒนาคุณภาพชีวิตผู้คน ผ่านการส่งมอบความรู้ ด้วยเทคโนโลยีที่ดีที่สุด" ... ประวัติ