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

Java Static कीवर्ड

Java Static कीवर्ड का उपयोग कैसे करें

जब आप Java में क्लासेस के साथ काम कर रहे होते हैं, तो आमतौर पर आपको उसके मेंबर्स को एक्सेस करने से पहले क्लास का एक इंस्टेंस बनाने की आवश्यकता होती है। हालांकि, आप ऐसी स्थिति का सामना कर सकते हैं जहां आप क्लास का इंस्टेंस बनाए बिना क्लास मेंबर को परिभाषित करना चाहते हैं।

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

यह ट्यूटोरियल उदाहरणों के साथ Java static कीवर्ड की मूल बातें और इसे अपने Java प्रोग्राम्स में कैसे उपयोग करें, इस पर चर्चा करेगा।

Java क्लासेस

Java में, क्लासेस एक ऑब्जेक्ट के लिए ब्लूप्रिंट हैं। उदाहरण के लिए, OrderCoffee नामक क्लास में कॉफी ऑर्डर करने से संबंधित सभी फंक्शन्स शामिल हो सकते हैं, जैसे ऑर्डर देना, मौजूदा ऑर्डर बदलना, और ऑर्डर में नए आइटम जोड़ना।

हम फिर उस क्लास के इंस्टेंस वाले ऑब्जेक्ट्स बना सकते हैं। उदाहरण के लिए, CoffeeOrder12 नामक एक ऑब्जेक्ट CoffeeOrder क्लास से ब्लूप्रिंट का उपयोग करके एक व्यक्तिगत कॉफी ऑर्डर के लिए डेटा स्टोर कर सकता है। CoffeeOrder12 ऑब्जेक्ट की CoffeeOrder क्लास के भीतर घोषित सभी फंक्शन्स और मेथड्स तक पहुंच होगी।

अब जब हमने Java क्लासेस की मूल बातें चर्चा कर ली हैं, तो हम Java static कीवर्ड का पता लगाने पर आगे बढ़ सकते हैं।

Java Static मेथड्स

Static मेथड्स, जिन्हें क्लास मेथड्स के रूप में भी जाना जाता है, वे मेथड्स हैं जो क्लास से संबंधित होते हैं न कि उसके इंस्टेंसेस से। क्योंकि static मेथड्स क्लास से संबंधित होते हैं, आप केवल क्लास से ही मेथड को इनवोक कर सकते हैं, न कि क्लास के ऑब्जेक्ट से।

Static मेथड को इनवोक करने के लिए सिंटैक्स यहां दिया गया है:

Class.methodName();

आइए एक उदाहरण देखें कि यह कैसे काम करता है।

मान लीजिए हम एक कॉफी स्टोर के ऑर्डर्स को मैनेज करने वाला प्रोग्राम बना रहे हैं। हम CoffeeOrder नामक एक क्लास बनाना चाहते हैं जो कॉफी ऑर्डर करने के लिए सभी फंक्शन्स को स्टोर करे।

हम तय करते हैं कि हम बारिस्ता के कंसोल पर नए ऑर्डर नोटिफिकेशन प्रिंट करना चाहते हैं। हम चाहते हैं कि यह नया ऑर्डर नोटिफिकेशन static हो क्योंकि यह कॉफी ऑर्डर ऑब्जेक्ट में किसी अन्य कोड पर निर्भर नहीं है। हम इस कार्य को पूरा करने के लिए निम्न कोड का उपयोग कर सकते हैं:

class CoffeeOrder { int createOrder() { // Code here int orderNumber = 92; return orderNumber; } static void printOrder(int order) { System.out.println("Order #" + order + " order has been placed."); } } class Main { public static void main(String[] args) { CoffeeOrder order92 = new CoffeeOrder(); int number = order92.createOrder(); System.out.println("Order number: " + number); CoffeeOrder.printOrder(number); } }

हमारा कोड लौटाता है:

Order number: 92 Order #92 has been placed.

आइए अपने कोड को चरण दर चरण ब्रेक डाउन करें। पहले हम CoffeeOrder नामक एक क्लास घोषित करते हैं। CoffeeOrder में दो मेथड्स हैं: createOrder() और printOrder()।

createOrder() एक नियमित मेथड है जो ऑर्डर बनाता है और ऑर्डर नंबर लौटाता है। printOrder() एक static मेथड है जो कंसोल पर संदेश प्रिंट करता है जो बारिस्ता को सूचित करता है कि एक नया ऑर्डर दिया गया है।

हमारे मेन प्रोग्राम में, हम CoffeeOrder का एक ऑब्जेक्ट बनाते हैं जिसे order92 कहा जाता है। यह ऑब्जेक्ट ऑर्डर #92 के लिए डेटा स्टोर करता है। फिर हम ऑर्डर नंबर प्राप्त करने के लिए createOrder() मेथड का उपयोग करते हैं, और हम उस ऑर्डर नंबर को कंसोल पर प्रिंट करते हैं, जिसके पहले Order number: आता है।

जब हम createOrder() मेथड को इनवोक करते हैं, तो हम order92.createOrder() का उपयोग करते हैं। ऐसा इसलिए है क्योंकि createOrder() static मेथड नहीं है, इसलिए हम अपने ऑब्जेक्ट को मैनिपुलेट करते समय इसे एक्सेस कर सकते हैं।

हमारे मेन कोड के अंत में, हम कंसोल पर Order #[order number] order has been placed. संदेश प्रिंट करने के लिए CoffeeOrder.printOrder() का उपयोग करते हैं। इस संदेश में, order number किसी विशेष ऑर्डर से जुड़ी संख्या के बराबर है। क्योंकि printOrder() एक static मेथड है, हमें इसे एक्सेस करने के लिए CoffeeOrder (हमारी क्लास) का उपयोग करना होगा।

यदि हमने order92.printOrder() का उपयोग करने का प्रयास किया (जो हमारी क्लास के इंस्टेंस को इनवोक करता है), जैसे हमने createOrder() मेथड का उपयोग करते समय किया था, तो हमारे कोड से चेतावनी मिलेगी।

Java Static वेरिएबल्स

Java में static कीवर्ड का उपयोग static इंस्टेंस वेरिएबल्स बनाने के लिए भी किया जा सकता है। Static वेरिएबल्स क्लास से संबंधित होते हैं और प्रोग्राम के एक्जीक्यूशन की शुरुआत में केवल एक बार इनिशियलाइज़ किए जाते हैं।

Static वेरिएबल्स ऑब्जेक्ट से संबंधित नहीं होते। इसका मतलब है कि उन्हें एक्सेस करने के लिए आपको संबंधित क्लास को संदर्भित करना होगा। Java में static वेरिएबल घोषित करने का सिंटैक्स यहां दिया गया है:

static String COFFEE_NAME = "Espresso";

इस उदाहरण में, हमने COFFEE_NAME नामक एक static वेरिएबल घोषित किया, जिसे हमने स्ट्रिंग मान Espresso असाइन किया।

आइए Java static वेरिएबल के उपयोग को प्रदर्शित करने के लिए एक उदाहरण के माध्यम से चलते हैं।

मान लीजिए हम एक कॉफी शॉप पर ऑर्डर्स प्रोसेस करने वाला प्रोग्राम बना रहे हैं। यह प्रोग्राम ड्यूटी पर बारिस्ता की संख्या स्टोर करना चाहिए, और जब ऑर्डर बनाया जाता है, तो प्रोग्राम को उस ऑर्डर को उस बारिस्ता के नाम के साथ जोड़ना चाहिए जो उस ऑर्डर को तैयार करेगा।

हम अपनी कॉफी प्रोसेसिंग प्रोग्राम बनाने के लिए इस कोड का उपयोग कर सकते हैं:

class CoffeeOrder { int baristasOnDuty = 2; static String name = "Hannah Johnson"; public static void main(String[] args) { CoffeeOrder order111 = new CoffeeOrder(); System.out.println("Baristas on duty: " + baristasOnDuty); System.out.println("Assigned barista: " + order111.name); } }

हमारा कोड लौटाता है:

Baristas on duty: 2 Assigned barista: Hannah Johnson

हमारे कोड में, हम निम्न दो वेरिएबल्स घोषित करते हैं:

  • baristasOnDuty. यह एक स्टैंडर्ड वेरिएबल है, जिसका अर्थ है कि इसे हमारी क्लास में हर जगह एक्सेस किया जा सकता है।
  • name. यह एक static वेरिएबल है, जिसका अर्थ है कि हमें इसका मान प्राप्त करने के लिए इससे जुड़े ऑब्जेक्ट को संदर्भित करना होगा।

हमारे मेन प्रोग्राम में, हम CoffeeOrder क्लास का एक इंस्टेंस बनाते हैं और इसे order111 कहते हैं। हम तब Baristas on duty: संदेश प्रिंट करते हैं जिसके बाद baristasOnDuty वेरिएबल की सामग्री आती है। क्योंकि यह एक स्टैंडर्ड वेरिएबल है, हमें इसके क्लास नाम को संदर्भित करने की आवश्यकता नहीं है।

हमारे कोड की अगली लाइन पर, हम कंसोल पर Assigned barista: संदेश प्रिंट करते हैं, जिसके बाद उस बारिस्ता का नाम आता है जिसे ऑर्डर असाइन किया गया है। हालांकि, बारिस्ता का नाम static वेरिएबल के रूप में स्टोर है।

इसका मतलब है कि, बारिस्ता का नाम प्राप्त करने के लिए, हमें उस ऑब्जेक्ट के नाम को संदर्भित करना होगा जिससे वह वेरिएबल जुड़ा हुआ है। इस मामले में, हम बारिस्ता का नाम प्राप्त करने के लिए order111.name का उपयोग करते हैं। ऐसा इसलिए है क्योंकि वेरिएबल name static है और इसलिए केवल order111 ऑब्जेक्ट को संदर्भित करते समय एक्सेस किया जा सकता है।

Java Static ब्लॉक

Java static कीवर्ड का उपयोग static ब्लॉक बनाने के लिए भी किया जा सकता है। यदि किसी क्लास में अलग-अलग static वेरिएबल्स हैं जिन्हें व्यक्तिगत रूप से इनिशियलाइज़ करने की आवश्यकता है, तो आपको static ब्लॉक का उपयोग करना चाहिए।

Static ब्लॉक्स एक बार एक्जीक्यूट होते हैं - जब क्लास पहली बार कंप्यूटर की मेमोरी में लोड होती है। Java में कोड के static ब्लॉक के लिए सिंटैक्स यहां दिया गया है:

static { // Code here }

आइए static ब्लॉक कैसे काम करता है यह प्रदर्शित करने के लिए एक उदाहरण के माध्यम से चलते हैं। मान लीजिए हमें संदेश A new order is incoming ... को प्रोग्राम द्वारा ऑर्डर को बारिस्ता को असाइन करने से पहले कंसोल पर प्रिंट करने के लिए कहा जाता है ताकि बारिस्ता तैयारी करना जान सकें। हम static क्लास बनाकर ऐसा कर सकते हैं। Static क्लास प्रोग्राम के पहली बार एक्जीक्यूट होने पर चलेगी।

यहां एक static क्लास का उदाहरण है जो उपरोक्त संदेश प्रिंट करता है, फिर ऑर्डर को बारिस्ता को असाइन करता है:

class CoffeeOrder { int baristasOnDuty = 2; static String name = "Hannah Johnson"; static { System.out.println("A new order is incoming ..."); } public static void main(String[] args) { CoffeeOrder order111 = new CoffeeOrder(); System.out.println("Baristas on duty: " + baristasOnDuty); System.out.println("Assigned barista: " + order111.name); } }

हमारा कोड लौटाता है:

A new order is incoming ... Baristas on duty: 2 Assigned barista: Hannah Johnson

हमारे कोड में, हमने पहले baristasOnDuty और name वेरिएबल्स इनिशियलाइज़ किए। फिर प्रोग्राम ने A new order is incoming ... संदेश को कंसोल पर प्रिंट किया। यह संदेश हमारे static कोड ब्लॉक के भीतर स्टोर था। प्रोग्राम द्वारा static ब्लॉक की सामग्री एक्जीक्यूट करने के बाद, इसने हमारे मेन प्रोग्राम को चलाया, जिसने हमारे पिछले उदाहरण के मेन प्रोग्राम के समान आउटपुट लौटाया।

निष्कर्ष

Java static कीवर्ड के कई उपयोग हैं। आप static कीवर्ड का उपयोग static मेथड्स, static वेरिएबल्स, और कोड के static ब्लॉक्स बनाने के लिए कर सकते हैं।

इस ट्यूटोरियल ने उदाहरणों के साथ static कीवर्ड की मूल बातें और आप मेथड्स, वेरिएबल्स, और कोड ब्लॉक्स के साथ static कीवर्ड का उपयोग कैसे कर सकते हैं, इस पर चर्चा की। इस ट्यूटोरियल को पढ़ने के बाद, आप एक प्रो की तरह Java static कीवर्ड का उपयोग शुरू करने के लिए तैयार हैं।

  1. - Java में इंटरफेस (Interface)

    एक इंटरफेस Java में एक रेफरेंस टाइप है। यह एक क्लास के समान है। यह एब्स्ट्रैक्ट मेथड्स का एक संग्रह है। एक क्लास इंटरफेस को इम्प्लीमेंट करती है, जिससे इंटरफेस के एब्स्ट्रैक्ट मेथड्स विरासत में मिलते हैं। एब्स्ट्रैक्ट मेथड्स के साथ, एक इंटरफेस में कॉन्स्टेंट्स, डिफ़ॉल्ट मेथड्स, स्टेटिक मेथड्स, और न

  1. - Java में Abstract Class

    अपनी घोषणा में abstract कीवर्ड वाली क्लास को abstract क्लास के रूप में जाना जाता है।Abstract क्लासेज में abstract मेथड्स हो भी सकते हैं और नहीं भी, यानी बिना बॉडी वाले मेथड्स (public void get();)लेकिन, यदि एक क्लास में कम से कम एक abstract मेथड है, तो क्लास को abstract घोषित किया जाना चाहिए।यदि एक क

  1. - Java में Final Class

    क्लास को final घोषित करने का मुख्य उद्देश्य क्लास को सबक्लास होने से रोकना है। यदि एक क्लास को final के रूप में चिह्नित किया जाता है तो कोई भी क्लास final क्लास से किसी भी सुविधा को इनहेरिट नहीं कर सकती।public final class Test { // body of class }