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

อะไรคือความแตกต่างระหว่างสแตติกบล็อกและคอนสตรัคเตอร์ใน Java?


บล็อกแบบคงที่

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

ไวยากรณ์

คงที่ { //บางคำสั่ง}

ตัวอย่าง

คลาสสาธารณะ StaticBlockTest { สแตติก { System.out.println ("สแตติกบล็อก!"); } public void main(String args[]) { System.out.println("ยินดีต้อนรับสู่ Tutorials Point!"); }}

ผลลัพธ์

Static Block!ยินดีต้อนรับสู่ Tutorials Point!


ตัวสร้าง

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

ไวยากรณ์

คลาสสาธารณะ MyClass { //นี่คือตัวสร้าง MyClass () { // บางคำสั่ง }}

ตัวอย่าง

<ก่อน> ConstructorTest คลาสสาธารณะ { คงที่ { //static block System.out.println ("ใน Static Block!"); } สาธารณะ ConstructorTest () { System.out.println ("ในคอนสตรัคเตอร์ตัวแรก!"); } สาธารณะ ConstructorTest (int c) { System.out.println ("ใน Constructor ที่สอง!"); } โมฆะคงที่สาธารณะ main (สตริง args []) { ConstructorTest ct1 =ใหม่ ConstructorTest (); ConstructorTest ct2 =ใหม่ ConstructorTest(10); }}

ผลลัพธ์

ใน Static Block!ใน Constructor ตัวแรก!ใน Constructor ที่สอง!