"สวัสดีนักเรียนคนโปรดของฉัน ตอนนี้ฉันจะบอกคุณเกี่ยวกับการมองเห็นของตัวแปร"
“หือ? ตัวแปรล่องหนได้เหรอ?”
"ไม่'การมองเห็น' หรือขอบเขตของตัวแปรหมายถึงตำแหน่งในโค้ดที่คุณสามารถอ้างถึงตัวแปรนั้น คุณ สามารถใช้ตัวแปรบางตัวได้ทุกที่ในโปรแกรม แต่ตัวแปรอื่น ๆ สามารถใช้ได้เฉพาะในคลาสของพวกเขาเท่านั้น และอื่น ๆ - ภายในวิธีเดียวเท่านั้น "
"ตัวอย่างเช่น คุณไม่สามารถใช้ตัวแปรก่อนที่จะมีการประกาศ"
"นั่นสมเหตุสมผลแล้ว"
"ต่อไปนี้เป็นตัวอย่าง:"
┏
┃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 ) | ใช่ | ใช่ | เลขที่ |
สาธารณะ | ใช่ | ใช่ | ใช่ |
GO TO FULL VERSION