Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में static और non-static मेथड्स में अंतर

एक Java मेथड स्टेटमेंट्स का एक संग्रह है जिन्हें एक ऑपरेशन करने के लिए एक साथ ग्रुप किया जाता है। जब आप System.out.println() मेथड को कॉल करते हैं, उदाहरण के लिए, सिस्टम वास्तव में कंसोल पर एक संदेश प्रदर्शित करने के क्रम में कई स्टेटमेंट्स को निष्पादित करता है।

Static Method

एक static मेथड को क्लास मेथड भी कहा जाता है और यह क्लास के ऑब्जेक्ट्स में सामान्य होता है और इस मेथड को क्लास नाम का उपयोग करके भी एक्सेस किया जा सकता है।

Non-Static Method

किसी क्लास का कोई भी मेथड जो static नहीं है, उसे non-static मेथड या इंस्टेंस मेथड कहा जाता है।

Static और non-static मेथड के बीच महत्वपूर्ण अंतर निम्नलिखित हैं:

क्र. सं.मुख्य बिंदुStaticNon-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
  1. Java में paint() विधि और repaint() विधि के बीच क्या अंतर हैं? Java में paint() विधि और repaint() विधि के बीच क्या अंतर हैं?

    Paint() और Repaint() paint(): इस विधि में इस घटक को पेंट करने के निर्देश होते हैं। Java Swing में, हम paint() विधि के बजाय paintComponent() विधि को बदल सकते हैं क्योंकि paint paintBorder(), paintComponent() और paintChildren() विधियों को कॉल करता है। हम इस विधि को सीधे नहीं बुला सकते, इसके बजाय हम

  1. - Java में import और static import स्टेटमेंट्स में क्या अंतर है?

    हम किसी विशेष पैकेज के क्लासेस और इंटरफेसेस को इम्पोर्ट करने के लिए इम्पोर्ट स्टेटमेंट का उपयोग कर सकते हैं। जब भी हम इम्पोर्ट स्टेटमेंट का उपयोग करते हैं, तो फुली क्वालिफाइड नाम का उपयोग करना आवश्यक नहीं होता और हम शॉर्ट नेम को सीधे उपयोग कर सकते हैं। हम static import का उपयोग किसी विशेष क्लास और

  1. - Java में Static Binding और Dynamic Binding

    हां! जब कंपाइलर जानता है कि मेथड निष्पादन के लिए किन ऑब्जेक्ट्स का उपयोग किया जाना है, तो यह रेफरेंस को ऑब्जेक्ट से स्टैटिकली बाइंड कर सकता है। उदाहरण के लिए, स्टैटिक वेरिएबल्स, प्राइवेट, फाइनल वेरिएबल्स स्टैटिक बाइंडिंग का उपयोग कर रहे हैं। जबकि यदि ऑब्जेक्ट पहचान रनटाइम पर की जानी है तो डायनामिक ब