जावा में स्थैतिक कक्षाएं


947

क्या static classजावा में ऐसा कुछ है ?

ऐसे वर्ग का अर्थ क्या है। क्या स्थैतिक वर्ग के सभी तरीकों को staticभी करने की आवश्यकता है?

क्या दूसरे रास्ते के लिए यह आवश्यक है, कि यदि किसी वर्ग में सभी स्थिर विधियाँ हों, तो क्या वर्ग भी स्थिर हो जाएगा?

स्थिर वर्ग किसके लिए अच्छे हैं?



स्टैटिक कक्षाएं मूल रूप से एक साथ कक्षाओं को समूहित करने के लिए उपयोग की जाती हैं।
रॉकिंगडेव

जवाबों:


847

जावा में स्टैटिक नेस्टेड क्लास हैं, लेकिन लगता है कि आप एक टॉप-लेवल स्टैटिक क्लास की तलाश में हैं। जावा के पास शीर्ष-स्तरीय वर्ग को स्थिर बनाने का कोई तरीका नहीं है, लेकिन आप इस तरह एक स्थिर वर्ग का अनुकरण कर सकते हैं:

  • अपनी कक्षा को घोषित करें final- एक स्थिर वर्ग का विस्तार करने से वर्ग का विस्तार रोकता है कोई मतलब नहीं है
  • कंस्ट्रक्टर बनाएं private- क्लाइंट कोड द्वारा तात्कालिकता को रोकता है क्योंकि यह एक स्थिर वर्ग को तात्कालिक बनाने के लिए कोई मतलब नहीं है
  • बनाओ सभी सदस्यों और वर्ग के कार्यों static- के बाद से वर्ग instantiated नहीं किया जा सकता है कोई उदाहरण तरीकों या कहा जा सकता है उदाहरण के खेतों तक पहुँचा
  • ध्यान दें कि संकलक आपको एक उदाहरण (गैर-स्थिर) सदस्य घोषित करने से नहीं रोकेगा। यदि आप उदाहरण सदस्य को कॉल करने का प्रयास करते हैं तो समस्या केवल दिखाई देगी

ऊपर से सुझावों के प्रति सरल उदाहरण:

public class TestMyStaticClass {
     public static void main(String []args){
        MyStaticClass.setMyStaticMember(5);
        System.out.println("Static value: " + MyStaticClass.getMyStaticMember());
        System.out.println("Value squared: " + MyStaticClass.squareMyStaticMember());
        // MyStaticClass x = new MyStaticClass(); // results in compile time error
     }
}

// A top-level Java class mimicking static class behavior
public final class MyStaticClass {
    private MyStaticClass () { // private constructor
        myStaticMember = 1;
    }
    private static int myStaticMember;
    public static void setMyStaticMember(int val) {
        myStaticMember = val;
    }
    public static int getMyStaticMember() {
        return myStaticMember;
    }
    public static int squareMyStaticMember() {
        return myStaticMember * myStaticMember;
    }
}

स्थिर वर्ग क्या अच्छे हैं? एक स्थिर वर्ग का एक अच्छा उपयोग एक बंद, उपयोगिता और / या पुस्तकालय कक्षाओं को परिभाषित करने में है जहां तात्कालिकता का कोई मतलब नहीं होगा। एक महान उदाहरण गणित वर्ग है जिसमें कुछ गणितीय स्थिरांक जैसे पीआई और ई शामिल हैं और बस गणितीय गणना प्रदान करता है। ऐसे मामले में तात्कालिकता की आवश्यकता अनावश्यक और भ्रामक होगी। Mathवर्ग और स्रोत कोड देखें । ध्यान दें कि यह है finalऔर इसके सभी सदस्य हैं static। यदि जावा ने शीर्ष-स्तरीय कक्षाओं को घोषित करने की अनुमति दी है, staticतो गणित वर्ग वास्तव में स्थिर होगा।


34
Fooकेवल staticतरीकों के साथ एक वर्ग के रूप में ही नहीं हैstatic class Foo
क्रेग

12
@ एवर्लर: यदि किसी वर्ग को अंतिम घोषित किया जाता है तो उसके तरीके स्वतः (प्रभावी रूप से) अंतिम हो जाते हैं। ऐसा इसलिए है क्योंकि एक अंतिम वर्ग को उपवर्गित नहीं किया जा सकता है, और इस प्रकार इसके तरीकों को ओवरराइड नहीं किया जा सकता है (यानी, प्रभावी रूप से अंतिम हैं)। docs.oracle.com/javase/tutorial/java/IandI/final.html
jwayne

30
यह उत्तर शायद ओपी का मतलब बताता है, लेकिन यह (वर्तमान में) जावा स्टैटिक क्लासेस की व्याख्या नहीं करता है, और इसलिए यह प्रश्न का उत्तर नहीं देता है! यह उन लोगों के लिए बहुत बुरा है जो यहां यह जानने की कोशिश कर रहे हैं कि जावा में एक स्थिर वर्ग का क्या मतलब है।
टॉम

12
@ जेबॉय: जावा में "स्टैटिक क्लास" जैसी कोई चीज होती है, जो कि सवाल के बारे में है, लेकिन यह जवाब बिल्कुल भी स्पष्ट नहीं है। इसके बजाय, यह बताता है कि जावा में कैसे अनुकरण किया जाए जो उत्तर "स्थिर वर्ग" कहता है - लेकिन यह नहीं है कि जावा में "स्थिर वर्ग" क्या है! (हो सकता है कि इसे किसी अन्य भाषा (भाषाओं) में "स्थिर वर्ग" कहा जाता है, लेकिन जावा स्थिर वर्गों के बारे में जानने के लिए यहां आने वाले लोगों को गुमराह और भ्रमित किया जाएगा।)
टॉम

4
आपको स्पष्ट रूप से उस निजी MyStaticClass () {// प्राइवेट कंस्ट्रक्टर myStaticMember = 1 का उल्लेख करना चाहिए; } पर कोई प्रभाव नहीं पड़ेगा क्योंकि कंस्ट्रक्टर को बुलाया नहीं जाएगा। लेकिन यह बात नहीं है। मैं अभी भी जावा में स्थिर आंतरिक वर्गों की उपयोगिता और उनकी उपयोगिता या अतिरिक्त मूल्य के बारे में बहुत उलझन में हूं।
मोलदोवन

315

ठीक है, जावा में "स्टैटिक नेस्टेड क्लासेस" हैं, लेकिन वे सी # स्टैटिक क्लासेस के समान नहीं हैं, यदि आप यहाँ से आ रहे हैं। एक स्थिर नेस्टेड क्लास सिर्फ एक है जो बाहरी वर्ग की आवृत्ति का संदर्भ नहीं देता है।

स्टेटिक नेस्टेड क्लासेस में इंस्टेंस मेथड्स और स्टैटिक मेथड्स हो सकते हैं।

जावा में शीर्ष स्तर के स्थिर वर्ग जैसी कोई चीज नहीं है।


12
जावा में स्टैटिक नेस्टेड क्लास उदाहरण के तरीकों की अनुमति क्यों देती है? ऐसी कक्षा में एक आवृत्ति विधि का उपयोग क्या है?
गीक

19
@ गीक: क्या आपने मेरा जवाब पढ़ा है? दूसरा वाक्य ध्यान से पढ़िए। आप स्थिर वर्गों के उदाहरण के तरीके क्यों नहीं बनवाना चाहेंगे ? आप उनमें से उदाहरण बना सकते हैं, सब के बाद।
जॉन स्कीट

17
@ गीक: हां, यह पूरी तरह से स्वीकार्य है। आपकी "समझ" कि स्थिर वर्ग उपयोगिता वर्ग हैं गलत हैं, मूल रूप से। यह जावा में स्थिर वर्गों का बिल्कुल मतलब नहीं है।
जॉन स्कीट

14
@ गीक: हाँ। बिल्कुल जैसा कि मैंने अपने जवाब में लिखा है: "एक स्थिर नेस्टेड क्लास सिर्फ एक है जो स्पष्ट रूप से बाहरी वर्ग के उदाहरण के लिए संदर्भ नहीं रखता है।"
जॉन स्कीट

6
@ कुर्रममाली: क्या आपका तात्पर्य है ? वे निश्चित रूप से स्पष्ट रूप से स्थिर नहीं हैं , यह देखते हुए कि आप staticउन्हें घोषित करते समय कीवर्ड का उपयोग नहीं करते हैं। वे स्पष्ट रूप से स्थिर हैं कि आपको एक निर्माण के लिए किसी और चीज के संदर्भ की आवश्यकता नहीं है। व्यक्तिगत रूप से मुझे स्थिर / गैर-स्थिर शब्दावली वैसे भी नेस्टेड कक्षाओं के लिए थोड़ी अजीब लगती है ... मुझे लगता है कि व्यवहार क्या है, इसके बारे में बात करना सरल होगा।
जॉन स्कीट

157

स्टैटिक नेस्टेड क्लास है , इस [स्टैटिक नेस्टेड] क्लास को इंस्टेंट होने के लिए एनक्लोजिंग क्लास के उदाहरण की जरूरत नहीं है।

ये वर्ग [स्टेटिक नेस्टेड] केवल संलग्न वर्ग के स्थिर सदस्यों तक पहुँच सकते हैं [क्योंकि इसमें संलग्न वर्ग के उदाहरणों का कोई संदर्भ नहीं है ...]

कोड नमूना:

public class Test { 
  class A { } 
  static class B { }
  public static void main(String[] args) { 
    /*will fail - compilation error, you need an instance of Test to instantiate A*/
    A a = new A(); 
    /*will compile successfully, not instance of Test is needed to instantiate B */
    B b = new B(); 
  }
}

1
तो क्या हम यह कह सकते हैं कि हम उन्हें सार्वजनिक करने की आवश्यकता के बिना उन्हें त्वरित करने के लिए आंतरिक स्थिर वर्गों का उपयोग कर सकते हैं?
मोलदोवन

@ मोल्डोवन हम एक स्थिर संदर्भ (जैसे कि मुख्य) से उन्हें तुरंत हटाने के लिए आंतरिक स्थिर वर्गों का उपयोग करते हैं । मुझे नहीं लगता कि इसका दृश्यता से कोई लेना-देना है।
माइकल डोरस्ट

2
@moldovean स्थिर / गैर स्थिर दृश्यता के लिए ऑर्थोगोनल है। आपके पास स्थिर या गैर स्थिर के साथ किसी भी प्रकार की दृश्यता हो सकती है। मुद्दा यह है कि क्या आपको आंतरिक को बनाने के लिए, एन्क्लोजिंग क्लास के उदाहरण की आवश्यकता है?
अमित

103

हाँ, जावा में एक स्थिर नेस्टेड क्लास है। जब आप एक नेस्टेड क्लास स्टेटिक की घोषणा करते हैं, तो यह स्वचालित रूप से एक स्टैंड अलोन क्लास बन जाता है, जो कि जिस बाहरी वर्ग से संबंधित है, उसे इंस्टेंट किए बिना तत्काल किया जा सकता है।

उदाहरण:

public class A
{

 public static class B
 {
 }
}

क्योंकि class Bस्थैतिक घोषित किया गया है आप स्पष्ट रूप से इस प्रकार बता सकते हैं:

B b = new B();

ध्यान दें कि यदि class Bइसे अकेले खड़ा करने के लिए स्थिर घोषित नहीं किया गया था, तो एक उदाहरण ऑब्जेक्ट कॉल इस तरह दिखाई देती थी:

A a= new A();
B b = a.new B();

7
ध्यान दें कि आप अन-स्टेटिक क्लास को नियमित रूप B b = new B();से इंस्टेंट कर सकते हैं जैसे कि आप क्लास से Aही उसे इंस्टेंट करने की कोशिश कर रहे हैं ।
मुहम्मद रिफैट

33

क्या हो रहा है जब एक के अंदर एक सदस्य के classरूप में घोषित किया जाता है static..? सदस्यों को बिना इंस्टेंट किए एक्सेस किया जा सकता है class। इसलिए बाहरी वर्ग (शीर्ष स्तरीय वर्ग) बनाने staticका कोई अर्थ नहीं है। इसलिए इसकी अनुमति नहीं है।

लेकिन आप आंतरिक कक्षाओं को स्थिर के रूप में सेट कर सकते हैं (जैसा कि यह शीर्ष स्तर वर्ग का सदस्य है)। फिर उस क्लास को टॉप लेवल क्लास को इंस्टेंट किए बिना पहुँचा जा सकता है। निम्नलिखित उदाहरण पर विचार करें।

public class A {
    public static class B {

    }
}

अब, एक अलग वर्ग के अंदर C, वर्ग Bका उदाहरण दिए बिना कक्षा तक पहुँचा जा सकता है A

public class C {
    A.B ab = new A.B();
}

staticकक्षाओं में non-staticसदस्य भी हो सकते हैं । केवल वर्ग स्थिर हो जाता है।

लेकिन यदि staticकीवर्ड को कक्षा से हटा दिया जाता है B, तो उसे बिना किसी इंस्टेंस के सीधे एक्सेस नहीं किया जा सकता है A

public class C {
    A a = new A();
    A.B ab = a. new B();
}

लेकिन हमारे पास staticएक non-staticआंतरिक वर्ग के सदस्य नहीं हो सकते ।


क्या हम एक स्थिर वर्ग को त्वरित कर सकते हैं या इसका कोई मतलब है?
सुपुन विजयरथने

6
अन्य भाषाओं की तरह नहीं, staticजावा में केवल एक ही अर्थ है। अगर कोई चीज staticक्लास में है तो इसका मतलब है कि उस क्लास को इंस्टेंट किए बिना उस चीज को एक्सेस किया जा सकता है। उदाहरण देने या न बनाने के संबंध में यह कुछ नहीं कहता है ..
रमेश-एक्स

क्षमा करें stackoverflow! मैं इस मामले में थैंक यू रमेश-एक्स कहने से नहीं बच सकता! आपने लगभग सभी चीजों को कवर किया, जिनके बारे में मैंने स्टैटिक इनर क्लासेस और इनर क्लासेस के बारे में सोचा था।
मोलदोवन

आप 'आंतरिक वर्गों को स्थैतिक के रूप में सेट नहीं कर सकते'। यह शब्दों में विरोधाभास है । एक नेस्टेड वर्ग या तो आंतरिक या स्थिर है।
user207421

13

यह देखते हुए कि "स्थिर वर्ग जावा" के लिए Google पर यह शीर्ष परिणाम है और सबसे अच्छा उत्तर यह नहीं है कि मुझे लगा कि मैं इसे जोड़ूंगा। मैं ओपी के प्रश्न को C # में स्थिर कक्षाओं के विषय में व्याख्या कर रहा हूं, जिन्हें जावा दुनिया में एकल के रूप में जाना जाता है। अनजान लोगों के लिए, C # में "स्थिर" कीवर्ड को एक वर्ग घोषणा पर लागू किया जा सकता है, जिसका अर्थ है कि परिणामी वर्ग को कभी भी त्वरित नहीं किया जा सकता है।

जोशुआ बलोच द्वारा "प्रभावी जावा - दूसरा संस्करण" का अंश (व्यापक रूप से उपलब्ध सर्वोत्तम जावा शैली गाइड में से एक माना जाता है):

रिलीज 1.5 के रूप में, एकल गायन को लागू करने के लिए एक तीसरा दृष्टिकोण है। बस एक तत्व के साथ एक एनुम प्रकार बनाएं:

// Enum singleton - the preferred approach
public enum Elvis {
    INSTANCE;
    public void leaveTheBuilding() { ... }
}

यह दृष्टिकोण कार्यात्मक रूप से सार्वजनिक क्षेत्र के दृष्टिकोण के समतुल्य है, सिवाय इसके कि यह अधिक संक्षिप्त है, मुफ्त के लिए क्रमबद्धता मशीनरी प्रदान करता है, और परिष्कृत क्रमांकन या प्रतिबिंब हमलों के सामने भी, कई तात्कालिकता के खिलाफ एक विडंबना गारंटी प्रदान करता है। हालांकि इस दृष्टिकोण को व्यापक रूप से अपनाया जाना बाकी है, एकल-तत्व एनम प्रकार एक सिंगलटन को लागू करने का सबसे अच्छा तरीका है। (जोर लेखक के)

बलोच, जोशुआ (2008-05-08)। प्रभावी जावा (जावा श्रृंखला) (पृष्ठ 18)। पियर्सन शिक्षा।

मुझे लगता है कि कार्यान्वयन और औचित्य बहुत आत्म व्याख्यात्मक हैं।


6
एक सिंगलटन को लागू करने का एक अच्छा तरीका। दुर्भाग्य से, सवाल सिंग्लेटन्स के बारे में नहीं है, यह स्थिर वर्गों के बारे में है
डेविड एसएन

1
जावा में "स्थिर" कीवर्ड की अनूठी व्याख्या है। ऐसा लगता है कि ओपी सी # से आ रहा है, जहां "स्थिर वर्ग" जावा में एक सिंगलटन के बराबर है। मैंने इस प्रश्न की व्याख्या को स्पष्ट करने के लिए अपना उत्तर अपडेट कर दिया है।
बेनेट ह्यूबर

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

13

क्या जावा में एक वर्ग स्थिर हो सकता है?

उत्तर हां है , हम जावा में स्थिर वर्ग हो सकते हैं। जावा में, हमारे पास स्टैटिक इंस्टेंस वैरिएबल के साथ-साथ स्टैटिक तरीके भी हैं और स्टैटिक ब्लॉक भी है । जावा में कक्षाएं भी स्थिर की जा सकती हैं।

जावा में, हम शीर्ष-स्तरीय (बाहरी) वर्ग को स्थिर नहीं बना सकते हैं। केवल नेस्टेड कक्षाएं स्थिर हो सकती हैं।

स्टेटिक नेस्टेड क्लास बनाम नॉन-स्टैटिक नेस्टेड क्लास

1) नेस्टेड स्टैटिक क्लास को आउटर क्लास के संदर्भ की आवश्यकता नहीं होती है, लेकिन नॉन-स्टैटिक नेस्टेड क्लास या इनर क्लास को आउटर क्लास के संदर्भ की आवश्यकता होती है।

2) आंतरिक वर्ग (या गैर-स्थिर नेस्टेड वर्ग) बाहरी वर्ग के स्थिर और गैर-स्थिर दोनों सदस्यों तक पहुंच सकता है। एक स्थिर वर्ग बाहरी वर्ग के गैर-स्थैतिक सदस्यों तक नहीं पहुँच सकता है। यह केवल बाहरी वर्ग के स्थिर सदस्यों तक ही पहुँच सकता है।

यहाँ देखें: https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html


इनर 'नॉन स्टैटिक' कक्षाएं भी स्थैतिक क्षेत्र या विधियों की घोषणा नहीं कर सकती हैं
मिस्टरकैट

8

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



2

सरल शब्दों में, जावा एक वर्ग की घोषणा को केवल आंतरिक वर्गों के लिए स्थिर होने का समर्थन करता है, लेकिन शीर्ष स्तर की कक्षाओं के लिए नहीं।

शीर्ष स्तर की कक्षाएं: एक जावा परियोजना में प्रत्येक जावा स्रोत फ़ाइल में एक से अधिक शीर्ष स्तर की कक्षाएं शामिल हो सकती हैं, एक वर्ग का नाम फ़ाइल के नाम पर रखा जा रहा है। शीर्ष स्तर की कक्षाओं, सार्वजनिक, सार और अंतिम के सामने केवल तीन विकल्प या कीवर्ड की अनुमति है।

इनर क्लासेस: वे क्लासेस जो एक टॉप लेवल क्लास के अंदर होती हैं, उन्हें इनर क्लासेस कहा जाता है, जो मूल रूप से नेस्टेड क्लासेस की अवधारणा है। भीतरी वर्ग स्थिर हो सकते हैं । आंतरिक कक्षाओं को स्थिर बनाने का विचार है, शीर्ष कक्षाओं वर्ग की वस्तु को तत्काल किए बिना आंतरिक कक्षाओं की वस्तुओं को त्वरित करने का लाभ उठाना है। यह ठीक उसी तरह है जैसे स्थैतिक तरीके और चर शीर्ष स्तर के वर्ग के अंदर काम करते हैं।

इसलिए जावा इनर क्लास लेवल (नेस्टेड क्लासेस में) स्टैटिक क्लासेस का समर्थन करता है

और जावा शीर्ष स्तर की कक्षाओं में स्थैतिक कक्षाओं का समर्थन नहीं करता है।

मुझे उम्मीद है कि यह जावा में स्थिर वर्गों की बुनियादी समझ के लिए प्रश्न का एक सरल समाधान देता है।



0

जावा में स्थिर विधियाँ हैं जो कक्षाओं से जुड़ी हैं (जैसे java.lang.Math में केवल स्थिर विधियाँ हैं), लेकिन वर्ग स्वयं स्थिर नहीं है।


0

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

public class Outer {
   static class Nested_Demo {
      public void my_method() {
          System.out.println("This is my nested class");
      }
   }
public static void main(String args[]) {
      Outer.Nested_Demo nested = new Outer.Nested_Demo();
      nested.my_method();
   }
}

staticजब तक कि यह नेस्टेड क्लास न हो, तब तक आप किसी क्लास के साथ कीवर्ड का उपयोग नहीं कर सकते । 'स्टेटिक इनर ’शब्द के संदर्भ में एक विरोधाभास है
user207421

0

एक स्थिर विधि का अर्थ है कि इसे सार्वजनिक के विपरीत, वर्ग की वस्तु बनाए बिना पहुँचा जा सकता है:

public class MyClass {
   // Static method
   static void myStaticMethod() {
      System.out.println("Static methods can be called without creating objects");
   }

  // Public method
  public void myPublicMethod() {
      System.out.println("Public methods must be called by creating objects");
   }

  // Main method
  public static void main(String[ ] args) {
      myStaticMethod(); // Call the static method
    // myPublicMethod(); This would output an error

    MyClass myObj = new MyClass(); // Create an object of MyClass
    myObj.myPublicMethod(); // Call the public method
  }
}

सवाल का जवाब नहीं देता।
user207421

-1

सभी अच्छे उत्तर, लेकिन मैंने java.util.Collections का संदर्भ नहीं देखा, जो अपने स्थिर कारक विधियों के लिए स्थिर आंतरिक वर्ग के टन का उपयोग करता है। तो वही जोड़ना।

Java.util.Collections से एक उदाहरण जोड़ना, जिसमें कई स्थिर आंतरिक वर्ग हैं। आंतरिक कक्षाएं समूह कोड के लिए उपयोगी होती हैं जिन्हें बाहरी वर्ग के माध्यम से एक्सेस करने की आवश्यकता होती है।

/**
 * @serial include
 */
static class UnmodifiableSet<E> extends UnmodifiableCollection<E>
                             implements Set<E>, Serializable {
    private static final long serialVersionUID = -9215047833775013803L;

    UnmodifiableSet(Set<? extends E> s)     {super(s);}
    public boolean equals(Object o) {return o == this || c.equals(o);}
    public int hashCode()           {return c.hashCode();}
}

यहाँ java.util.Collections वर्ग में स्थिर कारक विधि है

public static <T> Set<T> unmodifiableSet(Set<? extends T> s) {
    return new UnmodifiableSet<>(s);
}


आपकी टिप्पणी नहीं मिली? क्या आप विस्तार से समझा सकते हैं? आपकी टिप्पणी को समझने की कोशिश कर रहा है।
जय राजपूत
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.