วิธีการแบบคงที่และบล็อกแบบคงที่
เมธอดสแตติกเป็นของคลาสและจะถูกโหลดลงในหน่วยความจำพร้อมกับคลาส คุณสามารถเรียกใช้โดยไม่ต้องสร้างอ็อบเจ็กต์ (โดยใช้ชื่อคลาสเป็นข้อมูลอ้างอิง)
ในขณะที่ บล็อกแบบคงที่ เป็นบล็อกของรหัสที่มีคำหลักแบบคงที่ โดยทั่วไป สิ่งเหล่านี้ใช้เพื่อเริ่มต้นสมาชิกแบบสแตติก JVM รันบล็อกสแตติกก่อนเมธอดหลักในขณะที่โหลดคลาส
ตัวอย่าง
public class Sample { static int num = 50; static { System.out.println("Hello this is a static block"); } public static void demo() { System.out.println("Contents of the static method"); } public static void main(String args[]) { Sample.demo(); } }
ผลลัพธ์
Hello this is a static block Contents of the static method
ข้อจำกัดของบล็อกสแตติกและเมธอดคงที่
วิธีการแบบคงที่
-
คุณไม่สามารถเข้าถึงสมาชิกที่ไม่คงที่ (เมธอดหรือตัวแปร) จากบริบทคงที่ได้
-
ไม่สามารถใช้สิ่งนี้และ super ในบริบทคงที่ได้
-
วิธีสแตติกสามารถเข้าถึงเฉพาะข้อมูลประเภทสแตติก (ตัวแปรอินสแตนซ์ประเภทสแตติก)
-
คุณไม่สามารถแทนที่วิธีการแบบคงที่ คุณสามารถซ่อนมันได้
บล็อกแบบคงที่
-
คุณไม่สามารถส่งคืนสิ่งใดจากบล็อกแบบคงที่ได้
-
คุณไม่สามารถเรียกใช้การบล็อกแบบคงที่ได้อย่างชัดเจน
-
หากเกิดข้อยกเว้นในบล็อกแบบสแตติก คุณต้องแรปบล็อกนั้นภายในคู่ try-catch โยนไม่ได้
-
คุณไม่สามารถใช้สิ่งนี้และ สุดยอด คำหลักภายในบล็อกคงที่
-
คุณไม่สามารถควบคุมลำดับการดำเนินการแบบไดนามิกได้ในกรณีที่บล็อกแบบสแตติก พวกมันจะถูกดำเนินการตามลำดับการประกาศ