ขอบเขตของตัวแปรใน 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 คำหลักแบบสแตติกใช้เพื่อเข้าถึงเมธอดและฟิลด์สแตติกของคลาส ในการเข้าถึงเมธอดและฟิลด์สแตติกของคลาส คุณควรใช้ชื่อของคลาส จุด (.) และเมธอดสแตติกหรือชื่อฟิลด์