दिलचस्प पोस्ट
एक स्ट्रिंग में एक वर्ण की घटना की गणना वर्तमान स्थिति को पुनः लोड करना – ताज़ा डेटा क्या पठार म्यूटिक्स की गारंटी के साथ एक वेरिएबल को सुरक्षित रखता है, यह कैश्ड नहीं है? पंडों से जटिल मानदंडों के साथ चयन करना। डेटाफ़्रेम कंसोल विंडो को प्रोसेस से प्रारंभ करें। प्रारंभ सी # एंड्रॉइड संवाद पारदर्शी ReSharper WPF त्रुटि: "अज्ञात DataContext के कारण प्रतीक" MyVariable "का समाधान नहीं कर सकता" एएसपी। नेट सत्र को खोलने / जिंदा रखने इनलाइन विधानसभा के माध्यम से स्मृति हेरफेर के आसपास ताले अपने नाम से वर्ग प्राप्त करना जीसीसी में सभी अनुकूलन विकल्प अक्षम करें मैं जावा में एक स्थिर स्थानीय चर कैसे बनाऊं? PHP + PDO + MySQL: मैं MySQL से पूर्णांक और संख्यात्मक कॉलम कैसे PHP में integers और numerics के रूप में वापस कर सकता हूँ? स्ट्रिंग को पूर्णांक में कनवर्ट करने के लिए sscanf या atoi में क्या अंतर है? जावा में स्ट्रिंग को कैसे परिवर्तित करना है?

जावा नॉन-स्टैटिक फ़ील्ड के लिए एक स्थिर संदर्भ नहीं बना सकता

यह जावा में मेरा पहला कार्यक्रम है और मुझे इस त्रुटि को समझने में समस्या हो रही है

Cannot make a static reference to the non-static field * 

तथा

गैर-स्थिर विधि के लिए एक स्थिर संदर्भ नहीं बना सकता *

 public class Cerchio{ float r; float area; float cfr; final double pi = 3.14; public static void main(String[] args){ System.out.println("CIRCLE PROGRAM\n"); r = 5; c_cfr(); c_area(); System.out.ptintln("The cir is: " + cfr); System.out.println("The area is: " + area); } float c_cfr(){ cfr =(float)(2 * pi * r); //casting return cfr; } float c_area(){ area = (float)(pi * (r*r)); return area; } } 

त्रुटियों क्या आप मुझे कोई सुझाव दे सकते हैं? मैं Android पर Sandide पर कोडिंग हूँ

वेब के समाधान से एकत्रित समाधान "जावा नॉन-स्टैटिक फ़ील्ड के लिए एक स्थिर संदर्भ नहीं बना सकता"

आप उदाहरण विधियों और खेतों को एक स्थिर विधि के भीतर से बुला रहे हैं, ऐसा कुछ नहीं किया जा सकता है क्योंकि उदाहरण के खेतों और विधियों के बिना किसी वस्तु के अस्तित्व में नहीं है, और मुख्य विधि के अंदर this ऑब्जेक्ट नहीं है। आपको इसके बजाय क्लास का एक उदाहरण बनाना होगा, और फिर उदाहरण के तरीकों को कॉल करें।

 public class Cerchio{ float r; float area; float cfr; final double pi = 3.14; public static void main(String[] args){ System.out.println("CIRCLE PROGRAM\n"); Cerchio cerchio = new Cerchio(); cerchio.r = 5; cerchio.c_cfr(); cerchio.c_area(); System.out.ptintln("The cir is: " + cerchio.cfr); System.out.println("The area is: " + cerchio.area); } float c_cfr(){ cfr =(float)(2 * pi * r); //casting return cfr; } float c_area(){ area = (float)(pi * (r*r)); return area; } } 

कई अन्य समस्याएं, …

  • आप सीधे कक्षा के खेतों तक पहुंच रहे हैं, कुछ ऐसा नहीं किया जाना चाहिए। इसके बजाय, फ़ील्ड निजी होनी चाहिए और आपको गेटर्स / सेटर्स / कंस्ट्रक्टर पैरामीटर का उपयोग करने के लिए खेतों को सेट, सेट और सेट करना चाहिए।
  • आपका कोड पढ़ना और समझना बहुत मुश्किल बना रहा है।

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


संपादित करें
आप राज्य:

मुझे समझ नहीं आया "इसके बजाय, फ़ील्ड निजी होनी चाहिए और आपको खेतों को सेट, सेट और सेट करने के लिए गेटर्स / सेटर्स / कंस्ट्रक्टर पैरामीटर का उपयोग करना चाहिए।" मुझे निजी फ्लोट c_cfr () लिखना चाहिए?

आपके फील्ड हैं:

 float r; float area; float cfr; 

यह वास्तव में एक क्षेत्र नहीं है, लेकिन एक निरंतर: अंतिम डबल पीआई = 3.14;

और केवल मठ का उपयोग करके इसे बदला / सुधार किया जा सकता है। पीआई।

आपके फ़ील्ड में बदल दिया जाना चाहिए:

 private float r; private float area; private float cfr; 

और आपको उन्हें केवल सार्वजनिक रूप से और सेटर तरीकों के जरिए ही एक्सेस करना चाहिए, और केवल तभी आवश्यक है जब बिल्कुल आवश्यक हो।

सरल तय करने के लिए प्रत्येक विधि के सामने शब्द स्थिर रखना है। यह एक सार्वभौमिक स्थैतिक परिधि है = 2pi * r आपकी सर्कल मेरी सर्कल से बड़ा हो सकती है (सर्कल के दोनों उदाहरण), लेकिन यह पता लगाने के लिए क्षेत्रफल एक सूत्र है

c_cfr () और c_area () गैर स्थिर तरीके हैं जो आप सीधे मुख्य विधि से कॉल करने का प्रयास कर रहे हैं। या तो विधि c_cfr () और c_area () को स्थिर के रूप में बनाएं या ऑब्जेक्ट संदर्भ का उपयोग करके उन्हें एक्सेस करें।