ขอบเขตของตัวแปรใน Java [พร้อมตัวอย่างการเข้ารหัส]
เผยแพร่แล้ว: 2021-02-05สารบัญ
บทนำ
โปรแกรมเมอร์กำหนด ขอบเขตของตัวแปรใน Java ที่บอกคอมไพเลอร์เกี่ยวกับขอบเขตที่ตัวแปรสามารถเข้าถึงได้หรือมองเห็นได้ ขอบเขตของตัวแปรใน Java เป็นแบบคงที่โดยธรรมชาติ หมายความว่าเราต้องประกาศในเวลารวบรวมเท่านั้น ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับขอบเขตของตัวแปร Java พร้อมกับประเภทของตัวแปร
ขอบเขตของตัวแปรใน Java คืออะไร?
ทุกตัวแปรที่ใช้ในภาษาโปรแกรมมีขอบเขต ขอบเขตจะบอกคอมไพเลอร์เกี่ยวกับเซ็กเมนต์ภายในโปรแกรมที่สามารถเข้าถึงหรือใช้งานตัวแปรได้ โปรแกรมเมอร์สามารถกำหนดขอบเขตตัวแปรแบบศัพท์หรือแบบคงที่ได้ในกรณีของตัวแปร Java
ตัวแปรขอบเขตคงที่หมายความว่าโปรแกรมเมอร์ต้องกำหนด ขอบเขตของตัวแปรใน Java ณ เวลาคอมไพล์มากกว่าที่รันไทม์ นอกจากนี้ โปรดทราบว่าทุกคลาสเป็นส่วนหนึ่งของแพ็คเกจ Java ที่รวมขอบเขตที่แตกต่างกันสองหมวดหมู่ของ ตัวแปร ใน Java
1. ตัวแปรสมาชิกที่มีขอบเขตของคลาส: ตัวแปรสมาชิกเป็นสมาชิกของคลาสและด้วยเหตุนี้จึงประกาศภายในคลาสแต่ไม่อยู่ภายในวิธีการหรือฟังก์ชันใดๆ ดังนั้นเราจึงสามารถระบุขอบเขตของตัวแปรได้ เช่น ขอบเขตของคลาส หรือ ขอบเขตระดับคลาส โปรแกรมเมอร์ประกาศตัวแปรดังกล่าวภายในวงเล็บปีกกาของคลาส ( {} ) พร้อมกับตัวแก้ไขการเข้าถึง โปรแกรมเมอร์สามารถใช้ตัวแปรดังกล่าวได้ทุกที่ในคลาส Java แต่ไม่สามารถใช้ตัวแปรภายนอกได้
ตัวอย่าง:
คลาสสาธารณะ EgOfClassScope {

จำนวนเต็มส่วนตัว amt = 10;
โมฆะสาธารณะ egMethod () {
จำนวน += 10;
}
โมฆะสาธารณะ anotherExampleMethod () {
จำนวนเต็ม AmtIncr = amt + 6;
}
}
เราจะเห็นได้ว่าตัวแปร 'amt' สามารถเข้าถึงได้ในทุกวิธีของคลาส หากเราใช้ตัวแก้ไขการเข้าถึงแบบสาธารณะแทนที่จะเป็นแบบส่วนตัว ตัวแปรจะสามารถเข้าถึงได้จากทุกที่ภายในแพ็คเกจ
ตัวดัดแปลง แพ็คเกจ Subclass World
สาธารณะ ใช่ ใช่ ใช่
มีการป้องกัน ใช่ ใช่ ไม่
ค่าเริ่มต้น (ไม่
ตัวแก้ไข) ใช่ ไม่ใช่ ไม่ใช่
ส่วนตัว ไม่ ไม่ ไม่
2. Local Scope หรือ Method Scope: โปรแกรมเมอร์สามารถประกาศตัวแปรท้องถิ่นในขอบเขตท้องถิ่นที่มีช่วงที่น้อยกว่า (สมมุติว่าภายในวิธีการ) โปรแกรมเมอร์ไม่สามารถเข้าถึงตัวแปรดังกล่าวได้จากภายนอกเมธอด Java แม้จะอยู่ในคลาสเดียวกัน มีข้อจำกัดในการเข้าถึง และการมองเห็นจะสิ้นสุดลงเมื่อขอบเขตของเมธอด Java เสร็จสิ้น
ตัวอย่างที่ 1:
EgOfMethodScope ระดับสาธารณะ {
โมฆะสาธารณะ FirstMethod() {
เงินเดือนจำนวนเต็ม = 6000;
}
โมฆะสาธารณะ SecondMethod () {
// สิ่งนี้จะพบข้อผิดพลาดเวลาคอมไพล์โดยบอกว่า: พื้นที่ไม่สามารถแก้ไขเป็นตัวแปรได้
เงินเดือน = เงินเดือน + 2000;
}
}
เป็นตัวอย่างของขอบเขตวิธีการ ที่นี่ ฉันได้สร้างตัวแปร 'เงินเดือน' ภายใน FirstMethod(){….} ดังนั้นขอบเขตจะสิ้นสุดที่ส่วนท้ายของ FirstMethod() ดังนั้น การใช้ตัวแปรนี้ใน SecondMethod() จะทำให้เกิดข้อผิดพลาดเนื่องจาก 'เงินเดือน' ของตัวแปรอยู่นอกขอบเขต
ตัวอย่างที่ 2:
คลาส EgOfMethodScope2
{
ส่วนตัว int g;
โมฆะสาธารณะ setG(int g)
{
this.g = g;
}
}
ในที่นี้ เราใช้คีย์เวิร์ด 'this' เพื่อแยกความแตกต่างระหว่างขอบเขตท้องถิ่นและขอบเขตของตัวแปรคลาส โปรแกรมเมอร์ใช้คีย์เวิร์ดนี้เพื่อชี้ไปที่อ็อบเจ็กต์ปัจจุบันเป็นตัวแปรอ้างอิง ที่นี่โปรแกรมเมอร์ส่งตัวแปรเป็นพารามิเตอร์ไปยังเมธอด
โปรดทราบว่าตัวแปรในเครื่องจะไม่มีอยู่เมื่อการดำเนินการเมธอดสิ้นสุดลง มีขอบเขตท้องถิ่นรูปแบบอื่นที่ใช้ภายในเมธอด Java แต่เฉพาะส่วนภายในนั้น
- ขอบเขตลูป: มีบางสถานการณ์เมื่อเราประกาศตัวแปรภายในลูป ตัวแปรดังกล่าวจะมีขอบเขตของลูปและสามารถเข้าถึงได้จากภายในลูปเท่านั้น
ตัวอย่าง:

EgOfLoopScope ระดับสาธารณะ {
List<String> listOfEmp = Arrays.asList ( “Karlos”, “Gaurav”, “Sue”, “Dee”);
โมฆะสาธารณะ iterateEmpName() {
สตริงทั้งหมด = “”;
สำหรับ (ชื่อสตริง: listOfEmp)
{ // ขอบเขตของลูปเริ่มต้นจากที่นี่
ทั้งหมด = ทั้งหมด + ” ” + ชื่อ;
} // ขอบเขตลูปสิ้นสุดที่นี่
// คุณจะพบข้อผิดพลาดเวลาคอมไพล์ว่า: ชื่อไม่สามารถแก้ไขเป็นตัวแปรได้ – หากคุณพยายามเข้าถึงตัวแปรในบรรทัดถัดไป
สตริง lastEmpName = ชื่อ;
}
}
ในเมธอดนี้ iterateEmpName() ตัวแปร 'names' มีขอบเขตการวนซ้ำ (เนื่องจากเป็นตัวแปรตัวนับ) และสามารถเข้าถึงได้ภายใน { และ } ของคำสั่ง 'for'
- ขอบเขตวงเล็บ: โปรแกรมเมอร์สามารถกำหนดขอบเขตเพิ่มเติมได้ทุกที่ภายในโปรแกรม โปรแกรมเมอร์สามารถกำหนดขอบเขตพิเศษนี้ได้โดยใช้วงเล็บเหลี่ยม { และ }
ตัวอย่าง:
EgOfBracketScope ระดับสาธารณะ {
โมฆะสาธารณะ EgAddOp () {
จำนวนเต็ม tot = 0;
{ // วงเล็บเริ่มต้นจากที่นี่
จำนวนเต็ม = 6;
ทีโอที = ทีโอที + ไม่;
} // ขอบเขตวงเล็บสิ้นสุดที่นี่
// มันจะสร้างข้อผิดพลาดเวลาคอมไพล์โดยบอกว่า: ไม่สามารถแก้ไขตัวเลขเป็นตัวแปรได้ – หากใช้ในบรรทัดถัดไป
ไม่- ;

}
}
จุดสำคัญเกี่ยวกับขอบเขตของตัวแปรใน Java
- เช่นเดียวกับภาษาการเขียนโปรแกรมอื่นๆ (C, C++ และ C#) เราต้องใช้ชุดวงเล็บปีกกา ( { และ } ) เพื่อกำหนดขอบเขตของตัวแปรใน Java
- เราสามารถเข้าถึงตัวแปรจากวิธีการใดก็ได้ หากเรากำหนดไว้ภายในคลาสที่อยู่นอกขอบเขตของเมธอดใดๆ
- ในการใช้ตัวแปรหลังจากสิ้นสุดลูป เราต้องประกาศก่อนหรือเหนือเนื้อหาของลูป
- แต่เราไม่สามารถนำไปใช้หรือเข้าถึงได้หากไม่มีตัวสร้าง วิธี Java และบล็อก
- ขอบเขตของตัวแปรสแตติกอยู่ภายในคลาสเท่านั้น
- ขอบเขตกำหนดขอบเขตภายในโปรแกรมจากตำแหน่งที่ตัวแปรจะสามารถเข้าถึงได้
เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
บทสรุป
บทความนี้แสดงวิธีที่โปรแกรมเมอร์ใช้ขอบเขต Java เพื่อเขียนโปรแกรมต่างๆ นอกจากนี้ยังบอกเราเกี่ยวกับพื้นที่ภายในโปรแกรมที่มองเห็นตัวแปรได้ ทั้งความสามารถในการเข้าถึงและการมองเห็นมีบทบาทสำคัญในการเขียนโปรแกรมเนื่องจากแนวคิดของขอบเขต ความผิดพลาดเพียงครั้งเดียวในการกำหนดขอบเขตของตัวแปรอาจทำให้โปรแกรมเมอร์เกิดข้อผิดพลาดในการคอมไพล์
หากคุณต้องการพัฒนาทักษะ Java ของคุณ คุณต้องลงมือทำโปรเจ็กต์ Java เหล่านี้ หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java, การพัฒนา full stack, ลองดูโปรแกรม Executive PG ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์ Full-stack ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง, โครงการมากกว่า 9 โครงการ และการมอบหมายงาน สถานะศิษย์เก่า IIIT-B โครงการหลักและความช่วยเหลือด้านงานกับบริษัทชั้นนำ
ขอบเขตตัวแปรใน Java คืออะไร?
ขอบเขตของตัวแปรคือตำแหน่งในโปรแกรมของคุณที่สามารถอ้างอิงได้ ขอบเขตของตัวแปรถูกระบุโดยใช้คำสำคัญ 'ขอบเขต' ในการประกาศตัวแปร ตัวแปรที่สามารถเข้าถึงได้ในขอบเขต 'ใดๆ' สามารถเข้าถึงได้จากทุกที่ในโปรแกรมของคุณ ตัวแปรที่สามารถเข้าถึงได้เฉพาะในขอบเขตเฉพาะสามารถเข้าถึงได้ในขอบเขตนั้นเท่านั้น ขอบเขตอาจเป็นฟังก์ชัน บล็อก เมธอด คลาส หรือภายนอกเมธอด บล็อก และคลาสทั้งหมด
ตัวดัดแปลงการเข้าถึงประเภทใดบ้างใน Java
ตัวแก้ไขการเข้าถึงใน Java มีสี่ประเภท: สาธารณะ, ป้องกัน, ค่าเริ่มต้น (แพ็คเกจ) และส่วนตัว สาธารณะทำให้ตัวแปร คลาส หรือฟังก์ชันสามารถเข้าถึงได้จากทุกที่ มีการป้องกันทำให้สามารถเข้าถึงคลาสที่กำหนด บวกกับเป็นคลาสย่อย ค่าดีฟอลต์ (แพ็คเกจ) ทำให้คลาสใดก็ได้ในแพ็คเกจเดียวกัน และไพรเวตทำให้สามารถเข้าถึงได้เท่านั้น คลาสที่กำหนดไว้
คำหลักคงที่ใน Java คืออะไร?
คำหลักคงที่ในคลาส Java แสดงว่าคลาสที่ประกาศนั้นไม่ใช่อินสแตนซ์ของคลาส แต่เป็นคลาสโดยตัวมันเอง สมาชิกของคลาสข้อมูลสแตติกเป็นเรื่องปกติของอินสแตนซ์ทั้งหมด คำหลักแบบคงที่ใช้เพื่อเข้าถึงเมธอดและฟิลด์สแตติกของคลาส ใน Java คำหลักแบบสแตติกใช้เพื่อเข้าถึงเมธอดและฟิลด์สแตติกของคลาส ในการเข้าถึงเมธอดและฟิลด์สแตติกของคลาส คุณควรใช้ชื่อของคลาส จุด (.) และเมธอดสแตติกหรือชื่อฟิลด์