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

कोटलिन में जावा स्थिर विधियों के बराबर क्या है?


Java में, कुशल स्मृति प्रबंधन के लिए "स्थिर" कीवर्ड का उपयोग किया जाता है। एक बार एक चर या विधि को स्थिर . के रूप में घोषित कर दिया जाता है , तो JVM केवल एक बार इन वेरिएबल के लिए मेमोरी आवंटित करेगा। आमतौर पर स्थिर चर का उपयोग वर्ग . के सामान्य गुणों को घोषित करने के लिए किया जाता है , उदाहरण के लिए, "संस्था का नाम"। निम्नलिखित उदाहरण में, हम देखेंगे कि स्थिर . का उपयोग कैसे करें कीवर्ड।

जावा का उपयोग करने में स्टेटिक का उदाहरण

यह प्रदर्शित करने के लिए कि कैसे स्थिर जावा में काम करता है, हम अपने ऑनलाइन जावा कंपाइलर को एक्सेस करेंगे और हम एक टेस्ट . तैयार करेंगे कक्षा। अंदर परीक्षण , हम स्थिर . के साथ एक स्थिर चर बनाने का प्रयास करेंगे मेथड और हम दोनों को बिना इसकी क्लास . बनाए ही एक्सेस करेंगे वस्तुओं।

उदाहरण

पब्लिक क्लास टेस्ट {स्थिर int myStaticVariable =10; // स्थिर विधि स्थैतिक शून्य स्थैतिक विधि () {System.out.println ("www.tutorialspoint.com"); } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {// स्थिर विधि और चर तक पहुँचने के बिना // वर्ग के किसी भी वस्तु का परीक्षण staticMethod (); System.out.println ("स्टेटिक वेरिएबल एक्सेस करना-"+myStaticVariable); }} 

आउटपुट

एक बार जब आप कोड निष्पादित करते हैं, तो यह निम्न आउटपुट उत्पन्न करेगा -

$javac Test.java$java -Xmx128M -Xms16M टेस्टwww.tutorialspoint.comस्टेटिक वेरिएबल-10 को एक्सेस करना

कोटलिन में जावा स्टेटिक विधियों के समतुल्य

कोटलिन में, हमारे पास स्थिर . नहीं है खोजशब्द। इस लेख में, हम सीखेंगे कि कोटलिन लाइब्रेरी में उपलब्ध एक अलग कीवर्ड का उपयोग करके हम समान मेमोरी प्रबंधन कैसे प्राप्त कर सकते हैं। इसका उद्देश्य एक ऐसी स्थिति को चुनने के लिए एक अलग कोटलिन लाइब्रेरी फ़ंक्शन को लागू करना है जहां मेमोरी केवल एक बार बनाई जाएगी और इसके मूल्य को एप्लिकेशन के अन्य अनुभाग से संशोधित नहीं किया जा सकता है।

स्थिर . का उपयोग करने के दो तरीके हैं कोटलिन में -

  • सहयोगी वस्तु का उपयोग करना

  • ऑब्जेक्ट क्लास और @JvmStatic एनोटेशन का उपयोग करना

आइए इनमें से प्रत्येक तरीके को विस्तार से समझते हैं।

सहयोगी वस्तु का उपयोग करना

एक साथी जोड़ना ऑब्जेक्ट में डेवलपर्स को स्थिर . हासिल करने में मदद मिलेगी कोटलिन में कार्यक्षमता। यह ऑब्जेक्ट को उसी फ़ाइल में संग्रहीत करता है जहां कक्षा संग्रहीत होती है, इसलिए यह कक्षा के अंदर सभी निजी विधियों और चरों तक पहुंच सकती है। यह क्लास इनिशियलाइज़ेशन स्टेज के साथ इनिशियलाइज़ हो जाता है।

उदाहरण

हम एक सहयोगी वस्तु को लागू करने का प्रयास करेंगे और हम देखेंगे कि हम कोटलिन में स्मृति प्रबंधन को कितनी कुशलता से संभाल सकते हैं।

fun main(args:Array) {// क्लास वेरिएबल और मेथड को एक्सेस करना ऑब्जेक्ट।" + MyClass.staticField+'\n') println("Hello!"+'\n' + "यह बिना ऑब्जेक्ट बनाए क्लास मेथड को एक्सेस करने का एक उदाहरण है।" + MyClass.getStaticFunction()+'\n');}वर्ग MyClass{ साथी वस्तु { val staticField ="यह एक स्थिर चर है।" fun getStaticFunction ():स्ट्रिंग {वापसी "यह एक स्थिर विधि है।" } }} 

आउटपुट

एक बार जब आप कोड निष्पादित करते हैं, तो यह निम्न आउटपुट उत्पन्न करेगा -

Hello!यह ऑब्जेक्ट बनाए बिना क्लास वेरिएबल को एक्सेस करने का एक उदाहरण है। यह एक स्टेटिक वेरिएबल है। हैलो! यह बिना ऑब्जेक्ट बनाए क्लास मेथड को एक्सेस करने का एक उदाहरण है। यह एक स्थिर विधि है।

इस नमूना कोड में, यदि आप स्थिर . में से किसी के मान को संशोधित करने का प्रयास करते हैं चर, आप देखेंगे कि कोटलिन कंपाइलर एक त्रुटि फेंक देगा।

उदाहरण

fun main(args:Array) {// स्थिर चर MyClass.staticField="Hello Students" को संशोधित करने का प्रयास कर रहा है; println("Hello!"+'\n'+"यह बिना ऑब्जेक्ट बनाए क्लास वेरिएबल को एक्सेस करने का एक उदाहरण है-"+MyClass.staticField+'\n')}class MyClass{ साथी ऑब्जेक्ट { val staticField ="यह एक स्टेटिक है चर" मज़ा getStaticFunction ():स्ट्रिंग {वापसी "यह एक स्थिर विधि है" } }}

आउटपुट

उपरोक्त कोड निम्न त्रुटि उत्पन्न करेगा -

$kotlinc -nowarn main.kt -include-runtime -d main.jarmain.kt:5:5:त्रुटि:वैल को फिर से असाइन नहीं किया जा सकता हैMyClass.staticField="Hello Students";^

ऑब्जेक्ट क्लास और @JvmStatic एनोटेशन का उपयोग करना

कोटलिन दस्तावेज के अनुसार, एक बार @JvmStatic एनोटेशन किसी भी चर या विधि पर लागू किया जाता है, यह स्थिर . के रूप में कार्य करेगा उस वर्ग की कार्यक्षमता।

उदाहरण

निम्नलिखित उदाहरण में, हम एक ऑब्जेक्ट बनाएंगे क्लास और उस ऑब्जेक्ट . में वर्ग, हम @JvmStatic . का उपयोग करके चर और विधियों की घोषणा करेंगे स्थिर . को लागू करने के लिए एनोटेशन कोटलिन वातावरण में कार्यक्षमता।

fun main(args:Array) {// क्लास वेरिएबल और मेथड को एक्सेस करना ।" +MyClass.staticField+'\n') println("Hello!"+'\n' + "यह बिना ऑब्जेक्ट बनाए क्लास मेथड को एक्सेस करने का एक उदाहरण है। " +MyClass.getStaticFunction()+'\n');}ऑब्जेक्ट MyClass{ @JvmStatic val staticField ="यह एक स्टेटिक वैरिएबल है।" @JvmStatic fun getStaticFunction ():स्ट्रिंग {वापसी "यह एक स्थिर विधि है।" }} 

आउटपुट

यह परिणाम अनुभाग में निम्नलिखित आउटपुट उत्पन्न करेगा। -

Hello! यह बिना ऑब्जेक्ट बनाए क्लास वेरिएबल को एक्सेस करने का एक उदाहरण है। यह एक स्टेटिक वेरिएबल है।हैलो!यह बिना ऑब्जेक्ट बनाए क्लास मेथड को एक्सेस करने का एक उदाहरण है। यह एक स्थिर विधि है।

  1. जावा में JViewport क्लास का क्या महत्व है?

    JViewport एक JViewport क्लास मूल स्क्रॉलिंग मॉडल को परिभाषित करता है और इसे लॉजिकल स्क्रॉलिंग . दोनों का समर्थन करने के लिए डिज़ाइन किया गया है और पिक्सेल-आधारित स्क्रॉलिंग । व्यूपोर्ट के बच्चे को दृश्य . कहा जाता है कॉल करके स्क्रॉल किया जाता है JViewport.setViewPosition() विधि। एक JViewport

  1. जावा में कंटेनर क्लास का क्या महत्व है?

    कंटेनर एक कंटेनर वर्ग को एक विशेष घटक के रूप में वर्णित किया जा सकता है जो घटकों के संग्रह को पकड़ सकता है। स्विंग कंटेनर दो प्रकार के होते हैं, वे हैं शीर्ष-स्तरीय कंटेनर और निम्न-स्तरीय कंटेनर। शीर्ष-स्तरीय कंटेनर हैवीवेट . हैं कंटेनर जैसे JFrame , जेपलेट , जेविंडो , और JDialog । निम्न-स्तरीय

  1. Java में CardLayout क्लास का क्या महत्व है?

    कार्डलेआउट . की कार्यक्षमता घटकों को क्रमबद्ध तरीके से व्यवस्थित करता है और केवल एक समय में एक घटक दिखाई देता है ई और प्रत्येक घटक को एक कार्ड माना जाएगा। कार्डलेआउट कार्डलेआउट अन्य लेआउट से अलग है जहां अन्य लेआउट प्रबंधक कंटेनर के भीतर सभी घटकों को एक साथ प्रदर्शित करने का प्रयास करते हैं, CardLa