"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मुझे जावा में ''गैर-स्थिर फ़ील्ड का स्थैतिक संदर्भ नहीं बना सकता'' त्रुटि क्यों मिल रही है?

मुझे जावा में ''गैर-स्थिर फ़ील्ड का स्थैतिक संदर्भ नहीं बना सकता'' त्रुटि क्यों मिल रही है?

2024-11-07 को प्रकाशित
ब्राउज़ करें:881

Why am I getting the \

"एक गैर-स्थैतिक फ़ील्ड के लिए एक स्थिर संदर्भ नहीं बना सकते" त्रुटि से बचना

जावा प्रोग्रामिंग में, "एक गैर-स्थैतिक फ़ील्ड नहीं बना सकता" त्रुटि एक गैर-स्थैतिक फ़ील्ड का संदर्भ" त्रुटि तब होती है जब एक स्थिर विधि के भीतर एक गैर-स्थैतिक फ़ील्ड (जिसे इंस्टेंस वैरिएबल के रूप में भी जाना जाता है) तक पहुंचने का प्रयास किया जाता है।

प्रदान किए गए कोड में, त्रुटि उत्पन्न होती है क्योंकि मुख्य विधि स्थिर के रूप में घोषित किया गया है, जिसका अर्थ है कि यह केवल स्थिर विधियों और क्षेत्रों सहित वर्ग के स्थिर सदस्यों को संदर्भित कर सकता है। हालाँकि, फ़ील्ड बैलेंस और वार्षिकइंटरेस्टरेट गैर-स्थैतिक हैं, जिसका अर्थ है कि वे खाता वर्ग के प्रत्येक उदाहरण के लिए अद्वितीय हैं।

इस त्रुटि को हल करने के लिए, उचित जावा सिंटैक्स का पालन करने के लिए कोड को संशोधित करना आवश्यक है:

  • > गैर-स्थैतिक क्षेत्रों के लिए स्थैतिक संदर्भ हटाएं:

    • मुख्य विधि के भीतर संतुलन और वार्षिक ब्याज दर के संदर्भ हटा दिए जाने चाहिए क्योंकि वे एक ऑब्जेक्ट संदर्भ के माध्यम से एक्सेस किए गए उदाहरण चर हैं (उदाहरण के लिए, खाता.getBalance(), खाता.getAnnualInterestRate())
  • > गैर-स्थैतिक तरीके बनाएं उदाहरण के तरीके :

    • निकासी और जमा करने के तरीकों को गैर-स्थैतिक घोषित किया जाना चाहिए, क्योंकि उन्हें ऑब्जेक्ट संदर्भ के माध्यम से शेष क्षेत्र तक पहुंचने की आवश्यकता होती है। यह उन्हें विशिष्ट खाता उदाहरणों के संतुलन को संशोधित करने की अनुमति देता है।

मुख्य विधि के लिए संशोधित कोड:

public static void main(String[] args) {
    Account account = new Account(1122, 20000, 4.5);

    account.withdraw(2500);
    account.deposit(3000);
    System.out.println("Balance is "   account.getBalance());
    System.out.println("Monthly interest is "   account.getAnnualInterestRate() / 12);
    System.out.println("The account was created "   account.getDateCreated());
}

निकासी और जमा करने के तरीकों के लिए संशोधित कोड:

public void withdraw(double withdrawAmount) {
    balance -= withdrawAmount;
}

public void deposit(double depositAmount) {
    balance  = depositAmount;
}
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3