आप एक स्थिर विधि के भीतर से उदाहरण विधियों और फ़ील्ड को कॉल कर रहे हैं, ऐसा कुछ नहीं किया जा सकता है क्योंकि उदाहरण फ़ील्ड और विधियां किसी ऑब्जेक्ट के बिना मौजूद नहीं हैं, और अंदर मुख्य विधि 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;
}
}
अन्य समस्याओं के बहुत सारे, ...
- आप वर्ग क्षेत्रों सीधे, कुछ है कि नहीं किया जाना चाहिए पहुँच बना रहे हैं। इसके बजाए, फ़ील्ड निजी होनी चाहिए और फ़ील्ड प्राप्त करने, सेट करने और सेट करने के लिए आपको गेटर्स/सेटर्स/कन्स्ट्रक्टर पैरामीटर का उपयोग करना चाहिए।
- आपका कोड यह बहुत मुश्किल पढ़ने और समझने में बनाने इंडेंट नहीं की गई है।
इस साइट खोज करें के रूप में यह एक ही प्रश्न पूछा गया है और एक gabizillion बार उत्तर दिया, और सबसे अधिक संभावना है कि वहाँ एक जवाब वहाँ बाहर है कि मेरा तुलना में काफी बेहतर है। यदि पाया जाता है, तो यह प्रश्न डुप्लिकेट के रूप में बंद होना चाहिए।
संपादित
आप राज्य:
मैं समझ में नहीं आया "इसके बजाय, फ़ील्ड निजी होना चाहिए और आप getters/setters/contructor मापदंडों का उपयोग करना चाहिए प्राप्त करने के लिए, सेट और सेट खेत।" मुझे निजी फ्लोट c_cfr() लिखना चाहिए?
आपका क्षेत्र हैं:
float r;
float area;
float cfr;
यह वास्तव में एक क्षेत्र नहीं है, लेकिन एक स्थिर है: अंतिम डबल अनुकरणीय = 3.14;
और बदला जा सकता है/सुधार बस Math.PI. का उपयोग करके
आपका क्षेत्रों के लिए बदल दिया जाना चाहिए:
private float r;
private float area;
private float cfr;
और आप केवल उन्हें सार्वजनिक मनुष्य और सेटर तरीके के माध्यम से पहुंच जाना चाहिए, और केवल अगर बिल्कुल जरूरी।
स्रोत
2013-10-20 20:53:46
ठीक है, इसलिए मुझे कक्षा में ऑब्जेक्ट बनाने की आवश्यकता है जहां मुझे वर्ग में घोषित स्वामित्व और विधियों का उपयोग करना है, है ना? – Mitro
@AlessioMTX: उत्तर देने के लिए संपादित देखें। आपको मुख्य विधि के अंदर सेर्चियो प्रकार का एक चर बनाना होगा और इसे एक नया सर्चियो ऑब्जेक्ट असाइन करना होगा, और फिर आप इस चर के तरीकों को बंद कर सकते हैं। ऑब्जेक्ट सृजन पर आपकी पाठ्यपुस्तक के अध्यायों में यह सब अच्छी तरह से समझाया जाना चाहिए। कृपया एक नज़र डालें। –
ठीक है धन्यवाद, यह एक बेवकूफ त्रुटि थी, लेकिन मुझे आपके जैसे स्पष्टीकरण की आवश्यकता है। मैंने कोड तय किया है, इसलिए अब पढ़ना आसान है, हालांकि सही नहीं है। – Mitro