static Keyword
static का क्या मतलब है
static keyword variable या method को class खुद की बना देता है, अलग objects की नहीं। Static member सारे objects द्वारा साझा होता है, और आप इसे class नाम से किसी object बनाए बिना इस्तेमाल कर सकते हैं।
Static variables
class Counter {
static int count = 0; // सारे objects द्वारा साझा
Counter() { count++; } // साझा count बढ़ाता है
}
// इस्तेमाल:
new Counter(); new Counter(); new Counter();
System.out.println(Counter.count);
सिर्फ़ एक count है, हर object द्वारा साझा। हर नया object उसी variable को बढ़ाता है, तो यह सही गिनता है कितने बने — class नाम से access।
Static methods
class MathUtil {
static int square(int n) {
return n * n;
}
}
// object बिना call:
System.out.println(MathUtil.square(5));
Static method class पर call होती है, object पर नहीं — MathUtil.square(5)। इसीलिए utility methods और main static हैं।
Static blocks
class Config {
static String appName;
static {
appName = "CodingEasily"; // class load पर एक बार चलता है
System.out.println("Static block ran");
}
}
static { } block class पहली बार load होने पर एक बार चलता है, किसी object के मौजूद होने से पहले। यह ऐसे static variables set करने को सुविधाजनक है जिन्हें सरल value से ज़्यादा चाहिए।
static बनाम instance
| बात | static | instance |
|---|---|---|
| किसका | Class का | हर object का |
| Copies | एक साझा | प्रति object एक |
| Access via | Class नाम | Object |
| Object चाहिए | नहीं | हाँ |
static कब इस्तेमाल करें
- साझा data जो सारे objects इस्तेमाल करें, जैसे counter या constant।
- Utility methods जो object data पर निर्भर न हों, जैसे
Math.max। - Constants, अक्सर
static finalके रूप में जोड़े।
static तब इस्तेमाल कीजिए जब कुछ पूरी class का हो, एक object का नहीं।
आम गलतियाँ
- Static method में instance variables इस्तेमाल करना। Static method का कोई object नहीं, तो नहीं कर सकती।
- Static variable की per-object copies की उम्मीद। सिर्फ़ एक है, सबके द्वारा साझा।
- static का ज़्यादा इस्तेमाल। बहुत static object-oriented design तोड़ता है; साझा होने पर ही इस्तेमाल कीजिए।
- Object से static call करना। चलता तो है पर confusing — class नाम से call कीजिए।
सारांश
staticmember को class का बनाता है, हर object का नहीं।- Static variable सारे objects में एक साझा copy है।
- Static method class पर call होती है, object बिना।
- Static block class load होने पर एक बार चलता है।
- साझा data, utility methods और constants को static इस्तेमाल कीजिए।
आगे, visibility नियंत्रित कीजिए access modifiers से, या code व्यवस्थित कीजिए Java methods से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Java में static keyword क्या करता है?
static variable या method को class खुद की बना देता है, अलग objects की नहीं। Static member सारे objects द्वारा साझा होता है और class नाम से, बिना object बनाए इस्तेमाल हो सकता है।