दिलचस्प पोस्ट
वाई रिटर्न 2012 जबकि y रिटर्न 2011 सरलडाटाफ़ॉर्मेट में Ggplot2 में अतिरिक्त किंवदंतियों को निकालें सी # कैसे WebBrowser के माध्यम से auttomaticly बटन पर क्लिक करें स्काला से वर्गार्ज़ का उपयोग करना एक्ट्रोफिल्ड के साथ आईटेक्स्ट मर्ज दस्तावेज़ शीर्ष स्तर के क्वालिफायर क्या हैं? लैम्ब्डा के साथ लूप के साथ टंकिनर बटन कमांड असाइन करें छद्म तत्वों के अंदर घोंसले के शिकार छद्म तत्व नियंत्रण। अतिरिक्त रेंज (…) धीमा है "Var" या नहीं "var" जावास्क्रिप्ट के "फॉर-इन" लूप में है? PHP एकाधिक चेकबॉक्स सरणी क्यों एक संरचना उदाहरण से संपत्ति की निरंतर बाधाएं लेकिन कक्षा उदाहरण नहीं? प्रतिबिंब का उपयोग करते हुए मैं एक स्कला ऑब्जेक्ट विधि को कैसे कॉल करूं? संकेतक मैट्रिक्स बनाना टेम्पलेट स्थैतिक चर

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

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

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 पर कोडिंग हूँ

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

आप उदाहरण विधियों और खेतों को एक स्थिर विधि के भीतर से बुला रहे हैं, ऐसा कुछ नहीं किया जा सकता है क्योंकि उदाहरण के खेतों और विधियों के बिना किसी वस्तु के अस्तित्व में नहीं है, और मुख्य विधि के अंदर 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 () को स्थिर के रूप में बनाएं या ऑब्जेक्ट संदर्भ का उपयोग करके उन्हें एक्सेस करें।