2013-04-14 3 views
5

मुझे अन्य कक्षा में inString वैरिएबल प्राप्त करने की आवश्यकता है। मैं यह कैसे कर सकता हूँ?अन्य कक्षाओं में चर प्राप्त करें

public class main { 
    public static StringBuffer inString; 


    public static void main(String[] args) { 
     inString = new StringBuffer("Our aim is to make a 15 realistic game, where grinding powerlines and doing a tailwhip isn't easy, like in the real world. A game in which you will feel like you're actual riding. A game in which creativity and beauty are combined. "); 
     inString = new StringBuffer(inString.toString().replaceAll(" +", " ")); 
     } 
} 

तो मैं अपने Textcl.class में System.out.println(main.inString); उपयोग करने के लिए है, लेकिन null पाने का प्रयास करें।

+1

क्योंकि आपने इसे अन्य स्थैतिक शून्य मुख्य में शुरू नहीं किया है, इसलिए आप वहां चल रहे हैं – Yoda

उत्तर

3

आप शून्य हो जाएंगे क्योंकि टिप्पणी में रॉबर्ट किलर द्वारा सही तरीके से इंगित किया गया है।

आप क्लास नाम का उपयोग कर स्थिर चर का संदर्भ लें।

उदाहरण ClassName.variablename। आपके मामले में

main.inString 

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

public class main { 
public static StringBuffer inString; 

public main() 
{ 
inString = new StringBuffer("Our aim is to make a 15 realistic game, where grinding powerlines and doing a tailwhip isn't easy, like in the real world. A game in which you will feel like you're actual riding. A game in which creativity and beauty are combined. "); 
inString = new StringBuffer(inString.toString().replaceAll(" +", " ")); 
new MyClass(); 
} 
public static void main(String[] args) { 
    new main(); 
    } 
} 

अब MyClass में स्थिर चर का संदर्भ लें।

class MyClass { 

public MyClass() { 
    System.out.println("............."+main.inString);// refer to static variable 
} 
} 

आप कक्षा के निर्माता को चर भी पारित कर सकते हैं।

public class main { 
public StringBuffer inString; 

public main() 
    { 
    inString = new StringBuffer("Our aim is to make a 15 realistic game, where grinding powerlines and doing a tailwhip isn't easy, like in the real world. A game in which you will feel like you're actual riding. A game in which creativity and beauty are combined. "); 
    inString = new StringBuffer(inString.toString().replaceAll(" +", " ")); 
    new MyClass(inString); 
} 
public static void main(String[] args) { 
    new main(); 

    } 
} 

फिर MyClass में

public class MyClass 
{ 
     public MyClass(StringBuffer value) 
     { 
      System.out.println("............."+value); 
     } 
} 

लिंक @Why are static variables considered evil?

4

आप इसे प्राप्त कर सकते हैं: main.inString जहां main कक्षा का नाम है जहां public static चर घोषित किया गया है।

+0

'main.inString' में अपरकेस एस को न भूलें – xagyg

+0

इसे आज़माएं, लेकिन चर नहीं प्राप्त कर सकते हैं ( – antoxa2584

2

जब से तुम स्थिर कक्षा में क्षेत्र बना दिया की जांच करें, तो आप वर्ग के नाम इसे उपयोग करने यानी

उपयोग करते हैं,
main.inString 
1

JavaBeans का उपयोग करें और इसे अपने क्षेत्रों में से एक के रूप में स्टोर करें और इसके लिए गेटर्स और सेटर का उपयोग करें।

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

public class VariableStorage implements Serializable { 

    private String inString; 

    public String getInString() { 
     return inString; 
    } 

    public void setInString(String inString) { 
     this.inString = inString; 
    } 
} 

का उपयोग करके अपने मेल विधि में चर सेट करें:

VariableStorage variableStorage = new VariableStorage(); 
variableStorage.setInString(inString); 

तो इस वस्तु और अपने अन्य वर्ग deserialize में इस वस्तु को क्रमानुसार करने वस्तु serialzation का उपयोग करें।

क्रमबद्धता में एक वस्तु को बाइट्स के अनुक्रम के रूप में दर्शाया जा सकता है जिसमें ऑब्जेक्ट के डेटा के साथ-साथ ऑब्जेक्ट के प्रकार और ऑब्जेक्ट में संग्रहीत डेटा के प्रकार के बारे में जानकारी शामिल होती है।

एक धारावाहिक वस्तु को फ़ाइल में लिखा गया है, इसे फ़ाइल और deserialized से पढ़ा जा सकता है।यही है, वस्तु और उसके डेटा का प्रतिनिधित्व करने वाली प्रकार की जानकारी और बाइट्स वस्तु को स्मृति में पुन: बनाने के लिए उपयोग की जा सकती हैं।

यदि आप इसके लिए एक ट्यूटोरियल चाहते हैं, तो Serialization in Java देखें।

संबंधित मुद्दे