C++ या Java में हम static कीवर्ड प्राप्त कर सकते हैं। वे ज्यादातर समान हैं, लेकिन इन दोनों भाषाओं के बीच कुछ बुनियादी अंतर हैं। आइए, C++ में स्टैटिक और Java में स्टैटिक के बीच अंतर देखें।
स्थिर डेटा सदस्य मूल रूप से जावा और सी ++ में समान होते हैं। स्थिर डेटा सदस्य वर्ग की संपत्ति हैं, और इसे सभी वस्तुओं के साथ साझा किया जाता है।
उदाहरण
public class Test { static int ob_count = 0; Test() { ob_count++; } public static void main(String[] args) { Test object1 = new Test(); Test object2 = new Test(); System.out.println("The number of created objects: " + ob_count); } }
आउटपुट
The number of created objects: 2
उदाहरण
#include<iostream> using namespace std; class Test { public: static int ob_count; Test() { ob_count++; } }; int Test::ob_count = 0; int main() { Test object1, object2; cout << "The number of created objects: " << Test::ob_count; }
आउटपुट
The number of created objects: 2
स्थिर सदस्य कार्य करता है - C++ और Java में हम स्टैटिक मेंबर फंक्शन बना सकते हैं। ये भी उस वर्ग के सदस्य हैं। कुछ प्रतिबंध भी हैं।
- स्थिर विधियाँ केवल कुछ अन्य स्थिर विधियों को ही कॉल कर सकती हैं।
- वे केवल स्थिर सदस्य चरों तक पहुंच सकते हैं
- वे 'यह' या 'सुपर' (केवल जावा के लिए) तक नहीं पहुंच सकते
C++ और Java में, कुछ ऑब्जेक्ट बनाए बिना स्थिर सदस्यों तक पहुँचा जा सकता है
उदाहरण
//This is present in the different file named MyClass.java public class MyClass { static int x = 10; public static void myFunction() { System.out.println("The static data from static member: " + x); } } //This is present the different file named Test.Java public class Test { public static void main(String[] args) { MyClass.myFunction(); } }
आउटपुट
The static data from static member: 10
उदाहरण
#include<iostream> using namespace std; class MyClass { public: static int x; static void myFunction(){ cout << "The static data from static member: " << x; } }; int MyClass::x = 10; int main() { MyClass::myFunction(); }
आउटपुट
The static data from static member: 10
स्टैटिक ब्लॉक:जावा में हम स्टैटिक ब्लॉक पा सकते हैं। इसे स्टेटिक क्लॉज के रूप में भी जाना जाता है। इनका उपयोग किसी वर्ग के स्थिर आरंभीकरण के लिए किया जाता है। कोड, जो स्थिर ब्लॉक के अंदर लिखा गया है, केवल एक बार निष्पादित किया जाएगा। यह C++ में मौजूद नहीं है
C++ में हम स्थैतिक स्थानीय चर घोषित कर सकते हैं, लेकिन जावा में स्थिर स्थानीय चर समर्थित नहीं हैं।