Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Static Keyword ใน C++ เทียบกับ Java

static ใน C++ และ Java คล้ายกันแตกต่างในรายละเอียด

Static Data Members (คล้ายกัน)

เป็นสมาชิกของคลาส แบ่งปันให้ทุกอ็อบเจกต์

// C++
class Test { public: static int count; Test() { count++; } };
int Test::count = 0;

// Java
class Test { static int count = 0; Test() { count++; } }

Static Member Functions (คล้ายกัน)

  • เข้าถึงได้เฉพาะ static members
  • ไม่มี this pointer
  • เรียกผ่าน ClassName::function() ได้โดยไม่ต้องสร้าง object

ความแตกต่างสำคัญ

Java มี static initialization block สำหรับ initialization ที่ซับซ้อน C++ ใช้ constructor หรือฟังก์ชัน static แทน

คุณสมบัติC++Java
Static local variablesรองรับ (ใน function)ไม่รองรับ
Static blockไม่มีมี (static { })
Static importไม่มีมี (import static)
Static nested classไม่มีแนวคิด nested class เหมือน Javaมี static nested class