जावा में एक निजी स्थिर चर का उपयोग क्या है?


156

यदि एक चर के रूप में घोषित किया जाता है public static varName;, तो मैं इसे कहीं से भी एक्सेस कर सकता हूं ClassName.varName। मुझे यह भी पता है कि स्थिर सदस्य एक वर्ग के सभी उदाहरणों द्वारा साझा किए जाते हैं और प्रत्येक उदाहरण में वास्तविक नहीं होते हैं।

क्या एक वैरिएबल private static varName;घोषित करना वैरिएबल घोषित करने से अलग है private varName;?

दोनों ही मामलों में इसे किसी भी अन्य वर्ग से ClassName.varNameया उसके बराबर नहीं पहुँचा जा सकता है ClassInstance.varName

क्या वैरिएबल को स्थिर घोषित करने से यह अन्य विशेष गुण प्रदान करता है?


5
जावा चर नामों में डैश (-) नहीं हो सकता है।
मार्टिग्न कोर्टको

जवाबों:


127

बेशक, इसे एक्सेस किया जा सकता है ClassName.var_name, लेकिन केवल उस वर्ग के अंदर से जिसमें इसे परिभाषित किया गया है - ऐसा इसलिए है क्योंकि इसे परिभाषित किया गया है private

public staticया private staticचर अक्सर स्थिरांक के लिए उपयोग किए जाते हैं। उदाहरण के लिए, बहुत से लोग अपने कोड में "हार्ड-कोड" स्थिरांक को पसंद नहीं करते हैं; वे एक सार्थक नाम के साथ public staticया एक private staticवैरिएबल बनाना पसंद करते हैं और अपने कोड में इसका उपयोग करते हैं, जो कोड को अधिक पठनीय बनाना चाहिए। (आपको भी ऐसी स्थिरांक बनानी चाहिए final)।

उदाहरण के लिए:

public class Example {
    private final static String JDBC_URL = "jdbc:mysql://localhost/shopdb";
    private final static String JDBC_USERNAME = "username";
    private final static String JDBC_PASSWORD = "password";

    public static void main(String[] args) {
        Connection conn = DriverManager.getConnection(JDBC_URL,
                                         JDBC_USERNAME, JDBC_PASSWORD);

        // ...
    }
}

चाहे आप इसे बनाते हैं publicया privateइस पर निर्भर करते हैं कि आप चाहते हैं कि चर वर्ग के बाहर दिखाई दें या नहीं।


6
एक्सेस करने के लिए क्या आवश्यक है ClassName.var_nam? जहां मैं इसे सीधे एक्सेस कर सकता हूं: var_namकक्षा के भीतर
वैभव जानी

12
वर्ग नाम के माध्यम से इसे एक्सेस करना आवश्यक नहीं है , लेकिन कुछ लोगों को लगता है कि यह अच्छी शैली है, इसे गैर-स्थिर चर से अलग करना है।
जेस्पर

5
स्थैतिक चर का उपयोग करके इसे एक्सेस करने के लिए क्या आवश्यक है, हम "निजी अंतिम स्ट्रिंग JDBC_PASSWORD =" नया "लिख सकते हैं;" इस पासवर्ड स्ट्रिंग के लिए स्थैतिक चर का उपयोग करने के बजाय।
चैतन्य

48
@ अचैतन्य यह एक स्थिरांक है। आप इसे गैर-स्थिर बनाकर कक्षा के प्रत्येक उदाहरण के लिए चर की प्रतिलिपि क्यों लेना चाहेंगे?
जेसपर

16
स्टेटिक क्लास लेवल वेरिएबल है, जो कि कॉमन है और उस क्लास के सभी इंस्टेंस के लिए केवल एक कॉपी मौजूद है। नियम लागू है चाहे वह निजी हो या सार्वजनिक। निजी सिर्फ यह कहता है कि मैं अपने वैरिएबल वैल्यू (नॉन-फाइनल स्टैटिक्स के लिए) को साइड वर्ल्ड भ्रष्ट नहीं करना चाहता। यदि कोई स्थैतिक अंतिम है तो इसे सार्वजनिक करने में कोई बुराई नहीं है, क्योंकि कोई भी इसका मूल्य नहीं बदल सकता है।
user1923551

94

किसी वर्ग के सभी उदाहरणों के लिए स्टेटिक चर का एक ही मूल्य होता है।

यदि आप कुछ बनाने की तरह थे:

public class Person
{
    private static int numberOfEyes;
    private String name;
}

और फिर आप अपना नाम बदलना चाहते थे, यह ठीक है, मेरा नाम वही है। यदि, हालाँकि आप इसे बदलना चाहते थे, ताकि आपकी 17 आँखें हों, तो दुनिया में हर किसी की भी 17 आँखें होंगी।


3
यह निजी स्थैतिक चर पर लागू नहीं होता है जब तक कि आप निजी चर के लिए अभिगम विधि नहीं लिखते हैं क्योंकि उन्हें कक्षा के बाहर से नहीं पहुँचा जा सकता है।
गणेश कृष्णन

2
सच नहीं @GaneshKrishnan, वर्ग के किसी भी उदाहरण की पहुंच दोनों चरों तक है। स्वाभाविक रूप से आप उम्मीद कर सकते हैं कि कक्षा का लेखक मूर्खतापूर्ण कुछ नहीं करेगा। इसके अलावा, प्रतिबिंब और जेएनआई के साथ, सभी दांव बंद हैं।
टोफूबीर

46

निजी स्थिर चर उसी तरह उपयोगी होते हैं जिस तरह से निजी उदाहरण चर उपयोगी होते हैं: वे राज्य को संग्रहीत करते हैं जो केवल उसी वर्ग के भीतर कोड द्वारा एक्सेस किया जाता है। पहुंच (निजी / सार्वजनिक / आदि) और चर की आवृत्ति / स्थिर प्रकृति पूरी तरह से रूढ़िवादी अवधारणाएं हैं।

मैं वर्ग के "सभी उदाहरणों" के बीच साझा किए जाने के रूप में स्थैतिक चर के बारे में सोचने से बचूंगा - जिससे पता चलता है कि राज्य में मौजूद होने के लिए कम से कम एक उदाहरण होना चाहिए। नहीं - एक स्थिर चर प्रकार के किसी भी उदाहरण के बजाय स्वयं प्रकार से जुड़ा हुआ है ।

इसलिए किसी भी समय आप कुछ ऐसा राज्य चाहते हैं जो किसी विशेष उदाहरण के बजाय प्रकार के साथ जुड़ा हो, और आप उस राज्य को निजी रखना चाहते हैं (उदाहरण के लिए गुणों के माध्यम से नियंत्रित पहुंच की अनुमति देते हैं, उदाहरण के लिए) यह एक निजी स्थिर चर है।

एक तरफ के रूप में, मैं दृढ़ता से अनुशंसा करूंगा कि एकमात्र प्रकार के चर जो आप सार्वजनिक (या यहां तक ​​कि गैर-निजी) बनाते हैं, स्थिरांक हैं - अपरिवर्तनीय प्रकारों के स्थिर अंतिम चर। एपीआई और कार्यान्वयन को अलग करने (अन्य चीजों के बीच) के लिए बाकी सब कुछ निजी होना चाहिए।


क्या आप निजी स्थिर और निजी एक वर्ग में स्थिर वैरिएबल एक्सेस के अंतर के बारे में थोड़ा और अधिक बता सकते हैं?
धर्मेंद्र

1
@ धर्मेन्द्र: मेरे लिए यह स्पष्ट नहीं है कि आपका क्या मतलब है। निजी भाग अप्रासंगिक है - वास्तव में आपको स्थिर चर और उदाहरण चर के बीच के अंतर के बारे में क्या भ्रमित कर रहा है?
जॉन स्कीट

एक्सेसिबिलिटी में क्या अंतर है जब हम सिंगल क्लास के भीतर स्टैटिक और नॉन स्टेटिक वैरिएबल का इस्तेमाल करते हैं, जहां उन्हें घोषित किया जाता है?
धर्मेंद्र

2
@ योगगुरु: मुझे सवाल की प्रासंगिकता नहीं दिखती। यदि आप चाहते हैं कि यह निजी हो, तो इसे निजी बना दें और यदि आप चाहते हैं कि यह स्थिर हो जाए। वे ऑर्थोगोनल हैं।
जॉन स्कीट

1
@ गुरुत्वाकर्षण: नहीं, बिल्कुल नहीं। एक स्थिर विधि बिना किसी समस्या के इसे एक्सेस कर सकती है।
जॉन स्कीट

11

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

यहाँ एक उदाहरण है:

Class test {
   public static String name = "AA";
   private static String age;

   public static void setAge(String yourAge) {
       //here if the age variable is not static you will get an error that you cannot access non static variables from static procedures so you have to make it static and private to not be accessed from other classes
       age = yourAge;
   }
}

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

यदि आप यह एक वैध उपयोग मामला है तो वास्तव में आप यह नहीं कह सकते कि कक्षा को एक उचित नाम दे रहा है। जैसे, यदि कक्षा को बुलाया गया था Person, तो यह संभवतः एक बग होगा, क्योंकि आपके पास अलग-अलग उम्र के कई व्यक्ति नहीं हो सकते हैं (यदि यह एक इच्छित उपयोग मामला था)।
DanMan

मैं @Mukus से सहमत हूं। यह इस प्रश्न का एकमात्र वास्तविक उत्तर हो सकता है। मुझे लगता है कि ओपी पहले से ही स्थैतिक समझता है लेकिन लोग इसे फिर से समझाना चाहते हैं। वह एक विशिष्ट परिदृश्य के बारे में पूछ रहा है। स्थिर तरीकों में चर तक पहुंचने की क्षमता वह कार्यक्षमता है जो 'निजी स्थिर' जोड़ती है। मैं सिर्फ यह भी जोड़ना चाहता हूं कि यह नेस्टेड स्टैटिक क्लास के साथ-साथ वैरिएबल को भी एक्सेस करने की अनुमति देता है।
पिंकर्टन

1
स्मृति के बारे में क्या? स्थैतिक के साथ, आप केवल प्रत्येक उदाहरण के लिए प्रतिलिपि के बजाय कक्षा के लिए एक प्रतिलिपि बना रहे होंगे। और स्पष्ट रूप से एक स्थिर के साथ, आपको केवल कक्षा के लिए एक प्रति की आवश्यकता होगी। क्या इससे स्मृति बचती है?
पिंकर्टन

1
मैंने इस के बारे में जानकारी ली। मेरे पिछले प्रश्न का उत्तर है: हाँ, यह मेमोरी बचाता है
पिंकर्टन

8

खैर, private staticचर का उपयोग उस वर्ग के उदाहरणों में डेटा साझा करने के लिए किया जा सकता है। जब आप सही होते हैं कि हम private staticजैसे ClassName.memberया जैसे निर्माणों का उपयोग करके चर का उपयोग नहीं कर सकते हैंClassInstance.member लेकिन सदस्य हमेशा या उस वर्ग के उस वर्ग के तरीकों उदाहरणों से दिखाई जाएगी। तो उस वर्ग के प्रभाव में हमेशा सदस्य को संदर्भित करने में सक्षम होंगे।


6

एक निजी स्थिर वर्ग चर का उपयोग क्या है?

मान लीजिए कि आपके पास एक लाइब्रेरी बुक क्लास है। हर बार जब आप एक नई पुस्तक बनाते हैं, तो आप इसे एक अद्वितीय आईडी निर्दिष्ट करना चाहते हैं। एक तरीका बस 0 से शुरू करना है और आईडी नंबर बढ़ाना है। लेकिन, अन्य सभी पुस्तकें अंतिम निर्मित आईडी नंबर को कैसे जानती हैं? सरल, इसे एक स्थिर चर के रूप में सहेजें। क्या संरक्षक को यह जानने की आवश्यकता है कि प्रत्येक पुस्तक के लिए वास्तविक आंतरिक आईडी नंबर क्या है? नहीं, यह जानकारी निजी है।

public class Book {
    private static int numBooks = 0;
    private int id;
    public String name;

    Book(String name) {
        id = numBooks++;
        this.name = name;
    }
}

यह एक विरोधाभासी उदाहरण है, लेकिन मुझे यकीन है कि आप उन मामलों के बारे में आसानी से सोच सकते हैं, जहां आप चाहते हैं कि सभी वर्ग उदाहरणों के लिए सामान्य जानकारी तक पहुंच हो, जिन्हें अन्य सभी से निजी रखा जाना चाहिए। या यहां तक ​​कि अगर तुम नहीं कर सकते, तो यह संभव के रूप में निजी बातें बनाने के लिए अच्छा प्रोग्रामिंग अभ्यास है। क्या होगा यदि आपने गलती से उस नंबरबुक को सार्वजनिक कर दिया है, भले ही बुक उपयोगकर्ता इसके साथ कुछ भी करने के लिए नहीं थे। तब कोई व्यक्ति नई पुस्तक बनाए बिना पुस्तकों की संख्या बदल सकता था।

बहुत डरपोक!


6

क्या एक वैरिएबल private static varName;घोषित करना वैरिएबल घोषित करने से अलग है private varName;?

हां, दोनों अलग हैं। और पहले वाले को class variableइसलिए बुलाया जाता है क्योंकि यह उसके लिए एकल मूल्य रखता है classजबकि दूसरे को instance variableइसलिए बुलाया जाता है क्योंकि यह अलग-अलग मूल्य रखता है instances(Objects)। पहले एक को केवल एक बार jvm में बनाया जाता है और दूसरे को एक बार प्रति घंटे बनाया जाता है अर्थात यदि आपके पास 10 उदाहरण हैं तो आपके पास private varName;jvm में 10 भिन्न होंगे ।

क्या चर को घोषित करना staticइसे अन्य विशेष गुण प्रदान करता है?

हां, स्थिर चर सामान्य आवृत्ति चर की तुलना में कुछ अलग गुण प्राप्त करते हैं। मैंने पहले ही कुछ का उल्लेख किया है और चलो कुछ यहाँ देखें: class variables(उदाहरण के चर जो स्थिर के रूप में घोषित किए जाते हैं) को सीधे वर्ग नाम का उपयोग करके पहुँचा जा सकता है ClassName.varName। और उस वर्ग की कोई भी वस्तु केवल उसके संबंधित वस्तुओं द्वारा पहुंच चर के विपरीत इसके मूल्य को एक्सेस और संशोधित कर सकती है। क्लास चर का उपयोग स्थैतिक विधियों में किया जा सकता है।

private static variableजावा में उपयोग क्या है ?

तार्किक रूप से, private static variableअलग नहीं है public static variableबल्कि पहले वाला आपको अधिक नियंत्रण देता है। IMO, आप सचमुच की जगह ले सकता public static variableद्वारा private static variableकी मदद सेpublic static मनुष्य और सेटर तरीके।

इसका एक व्यापक रूप से उपयोग किया जाने वाला क्षेत्र private static variableसरल Singletonपैटर्न के कार्यान्वयन में है जहां आपके पास पूरी दुनिया में उस वर्ग का केवल एक ही उदाहरण होगा। यहां staticपहचानकर्ता महत्वपूर्ण भूमिका निभाता है ताकि बाहरी दुनिया द्वारा एकल उदाहरण सुलभ हो (बेशक सार्वजनिक स्थैतिक पानेवाला विधि भी मुख्य भूमिका निभाती है)।

public class Singleton {
    private static Singleton singletonInstance = new Singleton();

    private Singleton(){}

    public static Singleton getInstance(){
        return Singleton.singletonInstance;
    }
}

4

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


3

एक और परिप्रेक्ष्य:

  1. एक वर्ग और उसका उदाहरण रनटाइम पर दो अलग-अलग चीजें हैं। एक वर्ग की जानकारी उस वर्ग के सभी उदाहरणों द्वारा "साझा" की जाती है।
  2. गैर-स्थिर वर्ग चर उदाहरणों के होते हैं और स्थिर चर वर्ग के होते हैं।
  3. जैसे एक उदाहरण चर निजी या सार्वजनिक हो सकते हैं, वैसे ही स्थिर चर भी निजी या सार्वजनिक हो सकते हैं।

1

जब एक स्थिर विधि में आप एक चर का उपयोग करते हैं, तो चर को एक उदाहरण के रूप में स्थिर होना पड़ता है:

private static int a=0;  
public static void testMethod() {  
        a=1;  
}

3
ठीक है, जब तक कि आपकी विधि को निश्चित रूप से कक्षा के उदाहरण के संदर्भ में नहीं दिया जाता है।
जॉन स्कीट

1

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


1

कुछ लोगों के लिए यह अधिक समझ में आता है अगर वे इसे कुछ अलग-अलग भाषाओं में देखते हैं तो मैंने अपने पृष्ठ पर जावा, और PHP में एक उदाहरण लिखा है जहां मैं इनमें से कुछ संशोधकों की व्याख्या करता हूं। आप इस बारे में गलत सोच रहे होंगे।

आपको मेरे उदाहरणों को देखना चाहिए अगर यह नीचे का मतलब नहीं है। यहां जाओ जाएं http://www.siteconsortium.com/h/D0000D.php

लब्बोलुआब यह है कि यह बहुत ज्यादा है कि यह क्या कहता है। यह एक स्थिर सदस्य चर है जो निजी है। उदाहरण के लिए, यदि आप एक सिंगलटन ऑब्जेक्ट बनाना चाहते हैं, तो आप सिंगलटनExample.instance वेरिएबल को सार्वजनिक क्यों करना चाहेंगे। यदि आपने एक व्यक्ति किया जो वर्ग का उपयोग कर रहा था तो आसानी से मूल्य को ओवरराइट कर सकता है।

बस इतना ही।

    सार्वजनिक वर्ग
      निजी स्थिर सिंगलटन एक्सप्लोन उदाहरण = अशक्त;
      निजी स्थिर int मूल्य = 0;
      निजी सिंगलटन एक्सप्लोरेशन () {
        ++ this.value;
      }
      सार्वजनिक स्थैतिक सिंगलटन एक्सप्लांट getInstance () {
        यदि (उदाहरण! = नल)
        उदाहरण;
        सिंक्रोनाइज़ (SingletonExample.class) {
        उदाहरण = नया सिंगलटन। नमूना ();
        उदाहरण;
        }
      }
      सार्वजनिक शून्य प्रिंटवैल्यू () {
        System.out.print (this.value);
      }

      सार्वजनिक स्थैतिक शून्य main (String [] args) {
        SingletonExample आवृत्ति = getInstance ();
        instance.printValue ();
        उदाहरण = getInstance ();
        instance.printValue ();
         }
    }


1

यदि आप अपनी कक्षा में निजी स्थिर चर का उपयोग करते हैं, तो आपकी कक्षा में स्टेटिक इनर कक्षाएं आपके चर तक पहुँच सकती हैं। यह संदर्भ सुरक्षा के लिए पूरी तरह से अच्छा है।


0

यदि एक चर को सार्वजनिक स्थैतिक के रूप में परिभाषित किया जाता है, तो इसे किसी भी वर्ग से अपने वर्ग नाम के माध्यम से एक्सेस किया जा सकता है।

आमतौर पर कार्यों को सार्वजनिक स्थैतिक के रूप में परिभाषित किया जाता है, जिसे लागू करने वाले वर्ग के नाम से ही कॉल किया जा सकता है।

इसका एक बहुत अच्छा उदाहरण sleep()थ्रेड वर्ग में विधि है

Thread.sleep(2500);

यदि एक चर को निजी स्थैतिक के रूप में परिभाषित किया जाता है, तो इसे केवल उस वर्ग के भीतर पहुँचा जा सकता है, इसलिए किसी वर्ग के नाम की आवश्यकता नहीं है या आप अभी भी वर्ग नाम (आप तक) का उपयोग कर सकते हैं। निजी var_name और निजी स्थिर var_name के बीच का अंतर यह है कि निजी स्थिर चर को केवल कक्षा के स्थिर तरीकों से ही एक्सेस किया जा सकता है, जबकि निजी चर को उस वर्ग के किसी भी तरीके (स्थिर तरीकों को छोड़कर) तक पहुँचा जा सकता है

इसका एक बहुत अच्छा उदाहरण डेटाबेस कनेक्शन या स्थिरांक को परिभाषित करने के दौरान है जिसे चर को निजी स्थैतिक घोषित करने की आवश्यकता होती है।

एक और आम उदाहरण है

private static int numberOfCars=10;

public static int returnNumber(){

return numberOfCars;

}

0

मैं जावा के लिए नया हूं, लेकिन एक तरह से मैं स्थिर चर का उपयोग करता हूं, जैसा कि मैं कई लोगों को कर रहा हूं, यह वर्ग के उदाहरणों की संख्या की गणना करना है। उदाहरण के लिए:

public Class Company {
    private static int numCompanies;

    public static int getNumCompanies(){
        return numCompanies;
    }
}

तब आप खोज कर सकते हैं:

Company.getNumCompanies();

आप कक्षा के प्रत्येक उदाहरण (जो मुझे पूरी तरह से समझ में नहीं आता है) से अंक तक पहुँच प्राप्त कर सकते हैं, लेकिन यह "स्थिर तरीके" में नहीं होगा। मुझे नहीं पता कि यह सबसे अच्छा अभ्यास है या नहीं, लेकिन यह मेरे लिए समझ में आता है।


0

*) यदि एक चर को निजी घोषित किया जाता है, तो यह वर्ग के बाहर दिखाई नहीं देता है। इसे डेटाहेडिंग कहा जाता है।

*) यदि किसी चर को स्थिर घोषित किया जाता है, तो चर का मान सभी उदाहरणों के लिए समान है और हमें उस चर को कॉल करने के लिए एक ऑब्जेक्ट बनाने की कोई आवश्यकता नहीं है। हम उस चर को बस कॉल कर सकते हैं

classname.variablename;


0

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

public class PrivateStatic {

private static int var = 10;
public void setVar(int newVal) {
    var = newVal;
}

public int getVar() {
    return var;
}

public static void main(String... args) {
    PrivateStatic p1 = new Sub1();
    System.out.println(PrivateStatic.var);
    p1.setVar(200);

    PrivateStatic p2 = new Sub2();
    System.out.println(p2.getVar());
}
}


class Sub1 extends PrivateStatic {

}

class Sub2 extends PrivateStatic {
}

0

ThreadLocalचर आमतौर पर के रूप में लागू किया जाता है private static। इस तरह, वे वर्ग के लिए बाध्य नहीं हैं और प्रत्येक थ्रेड का अपना "थ्रेडलोकल" ऑब्जेक्ट का अपना संदर्भ है।


3
मुझे यह उत्तर समझ में नहीं आता है। आपका क्या अर्थ है?
एच। डेबी

-1

निम्नलिखित उदाहरण में, eyeव्यक्ति द्वारा बदल दिया जाता है, जबकि legवही रहता है। ऐसा इसलिए है क्योंकि एक निजी चर विधि की एक प्रति स्वयं बनाता है , ताकि उसका मूल मूल्य वही रहे; जबकि एक निजी स्थिर मूल्य में साझा करने के सभी तरीकों के लिए केवल एक प्रति है , इसलिए इसके मूल्य को संपादित करने से इसका मूल मूल्य बदल जाएगा।

public class test {
private static int eye=2;
private int leg=3;

public test (int eyes, int legs){
    eye = eyes;
    leg=leg;
}

public test (){
}

public void print(){
    System.out.println(eye);
    System.out.println(leg);
}

public static void main(String[] args){
    test PersonA = new test();      
    test PersonB = new test(14,8);
    PersonA.print();    
}

}

> १४ ३

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