"สวัสดีนักเรียนคนโปรดของฉัน ตอนนี้ฉันจะบอกคุณเกี่ยวกับการมองเห็นของตัวแปร"

“หือ? ตัวแปรล่องหนได้เหรอ?”

"ไม่'การมองเห็น' หรือขอบเขตของตัวแปรหมายถึงตำแหน่งในโค้ดที่คุณสามารถอ้างถึงตัวแปรนั้น คุณ สามารถใช้ตัวแปรบางตัวได้ทุกที่ในโปรแกรม แต่ตัวแปรอื่น ๆ สามารถใช้ได้เฉพาะในคลาสของพวกเขาเท่านั้น และอื่น ๆ - ภายในวิธีเดียวเท่านั้น "

"ตัวอย่างเช่น คุณไม่สามารถใช้ตัวแปรก่อนที่จะมีการประกาศ"

"นั่นสมเหตุสมผลแล้ว"

"ต่อไปนี้เป็นตัวอย่าง:"


public class Variables

{
   private static String TEXT = "The end.";
  ┗━━━━━━━━━━━━━━┛
   public static void main (String[] args)
                          ┗━━━━━━━┛
  {
     System.out.println("Hi");
     String s = "Hi!";
   ┏┗━━━━┛
    System.out.println(s);
    if (args != NULL)
    {
       String s2 = s;
      ┗━━━━┛
   
      System.out.println(s2);
     
    }
    Variables variables = new Variables();
    System.out.println(variables.instanceVariable);
    System.out.println(TEXT);
   
  }
 
   public String instanceVariable;
  ┗━━━━━━━━━━━━━━━┛
   public Variables()
   {
      instanceVariable = "Instance variable test.";
   }
}

1. ตัวแปรที่ประกาศในเมธอดมีอยู่ (มองเห็นได้) ตั้งแต่เริ่มประกาศจนถึงสิ้นสุดเมธอด

2. ตัวแปรที่ประกาศในบล็อคโค้ดมีอยู่จนกระทั่งสิ้นสุดบล็อคโค้ด

3. พารามิเตอร์ของเมธอดมีอยู่ทุกที่ภายในเมธอด

4. ตัวแปรในวัตถุมีอยู่ตลอดอายุขัยของวัตถุที่มีตัวแปรเหล่านั้น การมองเห็นยังถูกกำหนดโดยตัวแก้ไขการเข้าถึงพิเศษ: สาธารณะและส่วนตัว

5. ตัวแปรคงที่ (คลาส) มีอยู่ตลอดเวลาที่โปรแกรมกำลังทำงาน การมองเห็นของพวกเขาถูกกำหนดโดยตัวดัดแปลงการเข้าถึง

"ฉันชอบรูปภาพ มันช่วยทำให้ทุกอย่างชัดเจน"

"เด็กดี อามีโก้ ฉันรู้มาตลอดว่านายเป็นคนฉลาด"

"ฉันจะบอกคุณเกี่ยวกับ ' ตัวดัดแปลงการเข้าถึง ' เช่นกัน ไม่ต้องกลัว ไม่มีอะไรซับซ้อนเกี่ยวกับสิ่งเหล่านี้ คุณสามารถดูคำว่าสาธารณะและส่วนตัว ได้ที่นี่ "

“ไม่ได้กลัว แค่ตากระตุก”

"ฉันเชื่อคุณ คุณสามารถจัดการวิธีการเข้าถึงเมธอดและตัวแปรของคลาสหนึ่งโดย (หรือมองเห็นได้) ในคลาสอื่น คุณสามารถกำหนดตัวแก้ไขการเข้าถึงได้เพียงตัวเดียวให้กับแต่ละเมธอดหรือตัวแปร

1. ตัวแก้ไขการเข้าถึงสาธารณะ

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

2. ตัวดัดแปลงการเข้าถึงส่วนตัว

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

3. ไม่มีตัวดัดแปลง

หากตัวแปรหรือเมธอดไม่ถูกทำเครื่องหมายด้วยตัวแก้ไขใดๆ จะถือว่าถูกทำเครื่องหมายด้วยตัวดัดแปลงการเข้าถึง 'ค่าเริ่มต้น' ตัวแปรและเมธอดดังกล่าวสามารถมองเห็นได้ในทุกคลาสในแพ็คเกจที่ประกาศไว้ และสำหรับคลาสเหล่านั้นเท่านั้น การเข้าถึงระดับนี้บางครั้งเรียกว่าการเข้าถึงแบบ ' package-private ' เนื่องจากการเข้าถึงตัวแปรและเมธอดนั้นเปิดสำหรับแพ็คเกจทั้งหมดที่มีคลาสของมัน

นี่คือตารางที่สรุปสิ่งที่เราได้พูดคุยกัน:"

การปรับเปลี่ยน เข้าได้จาก…
ชั้นเรียนของตัวเอง แพ็คเกจของตัวเอง ชั้นใดก็ได้
ส่วนตัว ใช่ เลขที่ เลขที่
ไม่มีตัวดัดแปลง ( package-private ) ใช่ ใช่ เลขที่
สาธารณะ ใช่ ใช่ ใช่