Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ข้อจำกัดที่กำหนดไว้สำหรับวิธีสแตติกหรือบล็อกโค้ดแบบสแตติกในจาวามีอะไรบ้าง


วิธีการแบบคงที่และบล็อกแบบคงที่

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

ในขณะที่ บล็อกแบบคงที่ เป็นบล็อกของรหัสที่มีคำหลักแบบคงที่ โดยทั่วไป สิ่งเหล่านี้ใช้เพื่อเริ่มต้นสมาชิกแบบสแตติก 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 โยนไม่ได้

  • คุณไม่สามารถใช้สิ่งนี้และ สุดยอด คำหลักภายในบล็อกคงที่

  • คุณไม่สามารถควบคุมลำดับการดำเนินการแบบไดนามิกได้ในกรณีที่บล็อกแบบสแตติก พวกมันจะถูกดำเนินการตามลำดับการประกาศ