एक Java मेथड स्टेटमेंट्स का एक संग्रह है जिन्हें एक ऑपरेशन करने के लिए एक साथ ग्रुप किया जाता है। जब आप System.out.println() मेथड को कॉल करते हैं, उदाहरण के लिए, सिस्टम वास्तव में कंसोल पर एक संदेश प्रदर्शित करने के क्रम में कई स्टेटमेंट्स को निष्पादित करता है।
Static Method
एक static मेथड को क्लास मेथड भी कहा जाता है और यह क्लास के ऑब्जेक्ट्स में सामान्य होता है और इस मेथड को क्लास नाम का उपयोग करके भी एक्सेस किया जा सकता है।
Non-Static Method
किसी क्लास का कोई भी मेथड जो static नहीं है, उसे non-static मेथड या इंस्टेंस मेथड कहा जाता है।
Static और non-static मेथड के बीच महत्वपूर्ण अंतर निम्नलिखित हैं:
| क्र. सं. | मुख्य बिंदु | Static | Non-Static |
|---|---|---|---|
| 1 | एक्सेस | एक static मेथड केवल static मेंबर्स को एक्सेस कर सकता है और non-static मेंबर्स को एक्सेस नहीं कर सकता। | एक non-static मेथड static और non-static दोनों मेंबर्स को एक्सेस कर सकता है। |
| 2 | बाइंडिंग | Static मेथड कंपाइल टाइम बाइंडिंग या अर्ली बाइंडिंग का उपयोग करता है। | Non-static मेथड रनटाइम बाइंडिंग या डायनामिक बाइंडिंग का उपयोग करता है। |
| 3 | ओवरराइडिंग | कंपाइल टाइम बाइंडिंग होने के कारण एक static मेथड को ओवरराइड नहीं किया जा सकता। | डायनामिक बाइंडिंग होने के कारण एक non-static मेथड को ओवरराइड किया जा सकता है। |
| 4 | मेमोरी आवंटन | Static मेथड कम जगह घेरता है और मेमोरी आवंटन एक बार होता है। | Non-static मेथड अधिक जगह घेर सकता है। मेमोरी आवंटन तब होता है जब मेथड को इनवोक किया जाता है और मेथड पूरी तरह से निष्पादित होने के बाद डीअलोकेट हो जाता है। |
| 5 | कीवर्ड | एक static मेथड को static कीवर्ड का उपयोग करके घोषित किया जाता है। | एक सामान्य मेथड के लिए किसी विशेष कीवर्ड की आवश्यकता नहीं होती। |
Static बनाम non-static मेथड का उदाहरण
JavaTester.java
public class JavaTester {
public static void main(String args[]) {
Tiger.roar();
Tiger tiger = new Tiger();
tiger.eat();
}
}
class Tiger {
public void eat(){
System.out.println("Tiger eats");
}
public static void roar(){
System.out.println("Tiger roars");
}
}आउटपुट
Tiger roars Tiger eats