ตัวแปรคงที่ใน Java
⚡ สรุปอย่างชาญฉลาด
ตัวแปรคงที่ใน Java เป็นของคลาส ไม่ใช่ของอ็อบเจ็กต์ใดๆ และจะถูกเริ่มต้นเพียงครั้งเดียวเมื่อคลาสถูกโหลด สำเนาที่ใช้ร่วมกันเพียงชุดเดียวจะให้บริการแก่ทุกอินสแตนซ์ สามารถเข้าถึงได้โดยตรงผ่านชื่อคลาสโดยไม่ต้องสร้างอ็อบเจ็กต์
ค่าคงที่สามารถเป็น:
- ตัวแปรคงที่
- วิธีการแบบคงที่
- บล็อกคงที่ของ Code.
ลองดูที่ตัวแปรคงที่และวิธีการคงที่ก่อน
ตัวแปรคงที่คืออะไร Java?
ตัวแปรคงที่ใน Java ตัวแปรแบบสแตติก (Static variable) คือตัวแปรที่อยู่ในคลาสและจะถูกกำหนดค่าเริ่มต้นเพียงครั้งเดียวเมื่อเริ่มการทำงาน ตัวแปรนี้เป็นตัวแปรที่อยู่ในคลาส ไม่ใช่ในอ็อบเจ็กต์ (อินสแตนซ์) ตัวแปรแบบสแตติกจะถูกกำหนดค่าเริ่มต้นเพียงครั้งเดียวเมื่อเริ่มการทำงาน ตัวแปรเหล่านี้จะถูกกำหนดค่าเริ่มต้นก่อนตัวแปรอินสแตนซ์ใดๆ
- สำเนาเดียวที่จะแชร์โดยทุกอินสแตนซ์ของชั้นเรียน
- ตัวแปรคงที่สามารถเข้าถึงได้โดยตรงด้วยชื่อคลาส และไม่ต้องการวัตถุใดๆ
ไวยากรณ์:
<class-name>.<variable-name>
วิธีคงที่คืออะไร Java?
วิธีการคงที่ใน Java เป็นวิธีการที่เป็นของคลาสไม่ใช่ของวัตถุ วิธีการแบบคงที่สามารถเข้าถึงข้อมูลแบบคงที่เท่านั้น มันเป็นวิธีการที่เป็นของคลาสและไม่ใช่ของวัตถุ (อินสแตนซ์) วิธีการแบบคงที่สามารถเข้าถึงข้อมูลแบบคงที่เท่านั้น ไม่สามารถเข้าถึงข้อมูลที่ไม่คงที่ (ตัวแปรอินสแตนซ์).
- วิธีการแบบคงที่สามารถเรียกได้เฉพาะวิธีการแบบคงที่อื่น ๆ และไม่สามารถเรียกวิธีการที่ไม่คงที่จากนั้นได้
- วิธีการคงที่สามารถเข้าถึงได้โดยตรงด้วยชื่อคลาสและไม่ต้องการวัตถุใดๆ
- วิธีการคงที่ไม่สามารถอ้างถึงคำหลัก “นี้” หรือ “สุดยอด” ได้อยู่แล้ว
ไวยากรณ์:
<class-name>.<method-name>
หมายเหตุ วิธีการหลักเป็นแบบคงที่ เนื่องจากจะต้องสามารถเข้าถึงได้เพื่อให้แอปพลิเคชันทำงาน ก่อนที่จะมีการสร้างอินสแตนซ์ใดๆ เกิดขึ้น
มาเรียนรู้ความแตกต่างของคำหลักแบบคงที่โดยทำแบบฝึกหัดกัน
ตัวอย่าง: วิธีการเรียกตัวแปรและวิธีการแบบคงที่
ขั้นตอน 1) คัดลอกโค้ดต่อไปนี้ลงในโปรแกรมแก้ไข
public class Demo{ public static void main(String args[]){ Student s1 = new Student(); s1.showData(); Student s2 = new Student(); s2.showData(); //Student.b++; //s1.showData(); } } class Student { int a; //initialized to zero static int b; //initialized to zero only when class is loaded not for each object created. Student(){ //Constructor incrementing static variable b b++; } public void showData(){ System.out.println("Value of a = "+a); System.out.println("Value of b = "+b); } //public static void increment(){ //a++; //} }
ขั้นตอน 2) บันทึกและคอมไพล์โค้ด รันโค้ดเป็น การสาธิตจาวา.
ขั้นตอน 3) ผลลัพธ์ที่คาดหวังจะแสดงด้านล่าง
แผนภาพต่อไปนี้แสดงให้เห็นวิธีสร้างตัวแปรอ้างอิงและวัตถุ รวมถึงวิธีเข้าถึงตัวแปรคงที่โดยอินสแตนซ์ต่างๆ
ขั้นตอน 4) เป็นไปได้ที่จะเข้าถึงตัวแปรคงที่จากภายนอกคลาสโดยใช้ไวยากรณ์ ClassName.Variable_Name- ไม่แสดงความคิดเห็นบรรทัดที่ 7 และ 8 บันทึก คอมไพล์ และรัน สังเกตผลลัพธ์
Value of a = 0 Value of b = 1 Value of a = 0 Value of b = 2 Value of a = 0 Value of b = 3
ขั้นตอน 5) ไม่มีข้อคิดเห็นบรรทัด 25,26 & 27 บันทึก คอมไพล์ และรัน
error: non-static variable a cannot be referenced from a static context a++;
ขั้นตอน 6) ข้อผิดพลาด = ? เนื่องจากไม่สามารถเข้าถึงตัวแปรอินสแตนซ์ได้”a” จากเมธอดคลาส Java static “เพิ่มขึ้น"
Static Block คืออะไร Java?
การขอ บล็อกแบบคงที่ คือกลุ่มคำสั่งภายใน a Java คลาสที่จะถูกดำเนินการเมื่อมีการโหลดคลาสครั้งแรกลงใน JVM. บล็อกแบบคงที่ช่วยในการเริ่มต้นสมาชิกข้อมูลแบบคงที่เช่นเดียวกับตัวสร้างที่ช่วยในการเริ่มต้นสมาชิกอินสแตนซ์
class Test{ static { //Code goes here } }
โปรแกรมต่อไปนี้เป็นตัวอย่างของ Java static block
ตัวอย่าง: วิธีการเข้าถึงบล็อกแบบคงที่
public class Demo { static int a; static int b; static { a = 10; b = 20; } public static void main(String args[]) { System.out.println("Value of a = " + a); System.out.println("Value of b = " + b); } }
คุณจะได้รับผลลัพธ์ของโปรแกรมดังต่อไปนี้
Value of a = 10 Value of b = 20



