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
ความแตกต่างสำคัญ
| คุณสมบัติ | C++ | Java |
|---|---|---|
| Static local variables | รองรับ (ใน function) | ไม่รองรับ |
| Static block | ไม่มี | มี (static { }) |
| Static import | ไม่มี | มี (import static) |
| Static nested class | ไม่มีแนวคิด nested class เหมือน Java | มี static nested class |