static data member: giống nhau - thuộc về class, chia sẻ cho mọi object.
Ví dụ C++
class Test { public: static int count; Test(){count++;} };
int Test::count = 0; // định nghĩa ngoài class
Ví dụ Java
class Test { static int count = 0; Test(){count++;} }
static member function: giống nhau - chỉ truy cập static member, không có this.
Khác biệt:
- Java có static block (static initializer) chạy một lần khi load class. C++ không có.
- C++ cho phép static local variable trong hàm (khởi tạo một lần, giữ giá trị giữa các lần gọi). Java không hỗ trợ static local variable.