Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास · पाठ

Clojure से Java को कॉल करना

जानें कि Clojure कोड से सीधे Java विधियों को कैसे कॉल करें, फ़ील्ड तक कैसे पहुँचें और ऑब्जेक्ट कैसे बनाएँ

पाठ 1, कुल 4 में से11 चरण

Clojure से Java को कॉल करना, CoddyKit पर Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Clojure और Java: सबसे अच्छे मित्र!

Clojure Java Virtual Machine (JVM) पर चलता है, जिसका अर्थ है कि यह सभी शानदार Java लाइब्रेरी का सीधे उपयोग कर सकता है! इसे Java इंटरऑप कहा जाता है।

  • Java क्लास और मेथड का उपयोग करें।
  • विशाल Java पारिस्थितिकी तंत्र का लाभ उठाएँ।
  • Clojure की शक्ति को Java की स्थिरता के साथ मिलाएँ।

यह पाठ आपको दिखाएगा कि Clojure से Java कोड कैसे कॉल किया जाता है।

Java ऑब्जेक्ट बनाना

किसी Java क्लास का उपयोग करने के लिए अक्सर उसका एक इंस्टेंस बनाना पड़ता है। Clojure में आप विशेष सिंटैक्स का उपयोग करके ऐसा कर सकते हैं।

  • (new ClassName args) या संक्षिप्त रूप (ClassName. args) का उपयोग करें।
  • क्लास के नाम के बाद दिया गया . कंस्ट्रक्टर को कॉल करने का सुविधाजनक तरीका है।

उदाहरण: (java.util.Date.) एक नया Date ऑब्जेक्ट बनाता है।

डेमो: नया Date ऑब्जेक्ट

एक नया java.util.Date ऑब्जेक्ट बनाने का प्रयास करें। यह वर्तमान तारीख और समय को दर्शाएगा।

(ns my-app.core
  (:gen-class))

(defn -main
  "Creates and prints a new Java Date object."
  [& args]
  (let [current-date (java.util.Date.)]
    (println "Current date:" current-date)))

स्थैतिक Java मेथड कॉल करना

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

  • सिंटैक्स: (ClassName/staticMethodName args)
  • / क्लास के नाम और स्थैतिक मेथड के नाम को अलग करता है।

उदाहरण: (java.lang.Math/random), Math क्लास के स्थैतिक random मेथड को कॉल करता है।

डेमो: Math.random()

आइए Java की Math/random स्थैतिक विधि का उपयोग करके एक यादृच्छिक संख्या प्राप्त करें। यह 0.0 (समावेशी) और 1.0 (अपवर्जी) के बीच की double संख्या लौटाती है।

(ns my-app.core
  (:gen-class))

(defn -main
  "Generates and prints a random number using Java's Math/random."
  [& args]
  (let [rand-num (java.lang.Math/random)]
    (println "Random number:" rand-num)))

इंस्टेंस Java विधियों को कॉल करना

एक बार आपके पास कोई ऑब्जेक्ट आ जाए, तो आप उसकी इंस्टेंस विधियों को कॉल कर सकते हैं। ये विधियाँ उसी विशिष्ट ऑब्जेक्ट के डेटा पर कार्य करती हैं।

  • वाक्य-विन्यास: (.methodName instance args) या (. instance methodName args)।
  • विधि के नाम से पहले लगा . इंस्टेंस विधि के कॉल को दर्शाता है।

उदाहरण: (.getTime my-date), my-date ऑब्जेक्ट पर getTime विधि को कॉल करता है।

डेमो: Date.getTime()

एक Date ऑब्जेक्ट बनाएँ और फिर उसकी getTime() विधि को कॉल करें। यह विधि 1 जनवरी 1970, 00:00:00 GMT से अब तक की मिलीसेकंड की संख्या लौटाती है।

(ns my-app.core
  (:gen-class))

(defn -main
  "Creates a Date object and calls its getTime() method."
  [& args]
  (let [current-date (java.util.Date.)
        time-in-millis (.getTime current-date)]
    (println "Current date:" current-date)
    (println "Milliseconds since epoch:" time-in-millis)))

Java फ़ील्ड तक पहुँचना

Java ऑब्जेक्ट में डेटा संग्रहीत करने वाले फ़ील्ड (चर) हो सकते हैं। आप Clojure से इन फ़ील्ड तक सीधे पहुँच सकते हैं।

  • वाक्य-विन्यास: फ़ील्ड का मान प्राप्त करने के लिए (.-fieldName instance)।
  • स्थैतिक फ़ील्ड के लिए (.-staticFieldName ClassName) का उपयोग करें।

उदाहरण: (.-out System), System class के out स्थैतिक फ़ील्ड तक पहुँचता है, जो एक PrintStream है।

डेमो: System.out फ़ील्ड

java.lang.System class में out नाम का एक स्थैतिक फ़ील्ड है, जो एक PrintStream ऑब्जेक्ट है। कंसोल पर प्रिंट करने के लिए हम इसे एक्सेस कर सकते हैं।

(ns my-app.core
  (:gen-class))

(defn -main
  "Accesses System.out and prints a message using its println method."
  [& args]
  (let [out-stream (.-out java.lang.System)]
    (.println out-stream "Hello from System.out!")))

त्वरित जाँच: Java इंटरऑप

आपने Java classes के साथ इंटरैक्ट करना सीख लिया है। कौन-सी Clojure expression ClassName. संक्षिप्त रूप का उपयोग करके पथ "myfile.txt" के लिए java.io.File ऑब्जेक्ट बनाती है?

पुनरावृत्ति: Java इंटरऑप की मूल बातें

बहुत अच्छा! आपने Clojure से Java के साथ इंटरैक्ट करने की मूल बातें सीख ली हैं:

  • ऑब्जेक्ट बनाना: (ClassName. args) या (new ClassName args) का उपयोग करें।
  • स्थैतिक विधियों को कॉल करना: (ClassName/staticMethodName args) का उपयोग करें।
  • इंस्टेंस विधियों को कॉल करना: (.methodName instance args) या (. instance methodName args) का उपयोग करें।
  • फ़ील्ड तक पहुँचना: (.-fieldName instance) का उपयोग करें।

यह शक्तिशाली क्षमता आपको अपने Clojure प्रोजेक्ट में पूरे Java पारिस्थितिकी-तंत्र का लाभ उठाने देती है। अगली बार, हम Java इंटरफ़ेस लागू करना सीखेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Clojure सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “Clojure से Java को कॉल करना” पाठ निःशुल्क है?

हाँ—“Clojure से Java को कॉल करना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Clojure से Java को कॉल करना” में मैं क्या सीखूँगा?

जानें कि Clojure कोड से सीधे Java विधियों को कैसे कॉल करें, फ़ील्ड तक कैसे पहुँचें और ऑब्जेक्ट कैसे बनाएँ आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“Clojure से Java को कॉल करना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Clojure से Java को कॉल करना
  2. Java इंटरफ़ेस लागू करना
  3. Java लाइब्रेरी और टूल का लाभ उठाना
  4. Java संग्रह और ऐरे के साथ काम करना
← Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पर वापस जाएँ