$ cat Const.java
public class Const {
String Const(String hello) {
return hello;
}
public static void main(String[] args) {
System.out.println(new Const("Hello!"));
}
}
$ javac Const.java
Const.java:7: cannot find symbol
symbol : constructor Const(java.lang.String)
location: class Const
System.out.println(new Const("Hello!"));
^
1 error
उत्तर
जो आपने परिभाषित किया है वह वास्तव में एक निर्माता नहीं है, लेकिन Const
नामक एक विधि है। आप कुछ इस तरह करने के लिए अपने कोड में बदला है, यह काम करेगा:
Const c = new Const();
System.out.println(c.Const("Hello!"));
तो कोई विशेष निर्माता स्पष्ट रूप से परिभाषित किया गया है, संकलक स्वचालित रूप से नो-तर्क निर्माता बनाता है।
निर्माता कोई मूल्य नहीं लौटा सकता है। यह अंतिम है। यह वही समझ है - इसमें वापसी का प्रकार नहीं हो सकता है और यही कारण है कि आप संकलन त्रुटि प्राप्त कर रहे हैं। आप कह सकते हैं कि रिटर्न वैल्यू हमेशा कन्स्ट्रक्टर द्वारा बनाई गई वस्तु को स्पष्ट रूप से निहित करता है।
वास्तव में एक जावा वर्ग में निर्माता एक मूल्य यह
public class Test {
public Test(/*here the params*/) {
//this is a constructor
//just make some operations when you want to create an object of this class
}
}
जांच इन कड़ियों http://leepoint.net/notes-java/oop/constructors/constructor.html http://java.sun.com/docs/books/tutorial/java/javaOO/constructors.html
निम्नलिखित रूप में होना चाहिए वापस नहीं लौट सकते एक निर्माता एक वापसी मान नहीं हो सकता एक "सामान्य" समारोह की तरह। यह तब कहा जाता है जब प्रश्न में वर्ग की आबादी बनाई जाती है। इसका उपयोग उस उदाहरण के आरंभ करने के लिए किया जाता है।
रचनाकार एक मूल्य वापस नहीं कर सकते हैं; वे बोलने के लिए, निर्मित वस्तु वापस लौटते हैं।
आपको एक त्रुटि मिलती है क्योंकि संकलक एक निर्माता की तलाश में है जो इसकी तर्क के रूप में एक स्ट्रिंग लेता है। चूंकि आपने नहीं एक कन्स्ट्रक्टर घोषित किया है, केवल एकमात्र कन्स्ट्रक्टर उपलब्ध डिफॉल्ट कन्स्ट्रक्टर है जो कोई तर्क नहीं लेता है।
मैं क्यों कहता हूं कि आपने एक निर्माता घोषित नहीं किया है? क्योंकि जैसे ही आप अपनी विधि के लिए रिटर्न वैल्यू/टाइप घोषित करते हैं, यह अब एक कन्स्ट्रक्टर नहीं है बल्कि एक नियमित विधि है।
एक वर्ग कंस्ट्रक्टर्स कि वर्ग खाका से वस्तुओं को बनाने के लागू होते हैं। कन्स्ट्रक्टर घोषणाएं घोषणाओं की तरह दिखती हैं-सिवाय इसके कि वे कक्षा के नाम का उपयोग करते हैं और प्रकार नहीं लौटाते हैं।
यदि आप विस्तारित करते हैं कि आप किसी को प्राप्त करने की कोशिश कर रहे हैं तो आप यह बताने में सक्षम होंगे कि आप उस लक्ष्य को कैसे प्राप्त कर सकते हैं।
public class Const {
private String myVar;
public Const(String s) {
myVar = s;
}
public String getMyString()
{
return myVar;
}
public static void main(String[] args) {
Const myConst = new Const("MyStringHere");
System.out.println(myConst.getMyString());
}
}
आपको getStyring() के बजाय एक toString() फ़ंक्शन बनाना चाहिए। तो आप 'System.out.println (myConst)' कर सकते हैं – Rhs
मैं सबसे अच्छा तरीका प्रभाव आप होगा निम्नलिखित चाहते उत्पादन करने के लिए लगता है:
public class Const {
private String str;
public Const(String hello) {
str = hello;
}
public String toString() {
return str;
}
public static void main(String[] args) {
System.out.println(new Const("Hello!"));
}
}
यह public String Const()
विधि आप पहले उपयोग ले लेती है और Object
की public String toString()
विधि अधिभावी द्वारा (जो सब जावा क्लास से उत्तराधिकारी) ऑब्जेक्ट का स्ट्रिंग मान सही ढंग से मुद्रित होता है जब आप ऑब्जेक्ट प्रिंट करना चाहते हैं, इसलिए आपकी मुख्य विधि अपरिवर्तित बनी हुई है।
एक कन्स्ट्रक्टर एक मूल्य वापस नहीं कर सकता है क्योंकि एक निर्माता पूरी तरह से किसी ऑब्जेक्ट की संदर्भ आईडी देता है, और चूंकि एक कन्स्ट्रक्टर भी एक विधि है और एक विधि एक से अधिक मान वापस नहीं कर सकती है। तो हम स्पष्ट रूप से कहते हैं कि रचनाकार के पास वापसी मूल्य नहीं है।
पहले से ही बहुत से अच्छे उत्तर हैं। मैं इसे जोड़ना चाहूंगा, अगर आप किसी कन्स्ट्रक्टर को आवेदक के परिणामस्वरूप ऑब्जेक्ट से कुछ रिटर्न कोड अलग करना चाहते हैं, तो आप कन्स्ट्रक्टर को factory method
में लपेट सकते हैं, जो सृजन पर, उदाहरण के लिए कुछ डेटा सत्यापन कर सकता है निर्मित वस्तु और परिणाम के आधार पर boolean
लौटाएं।
किसी कन्स्ट्रक्टर से मूल्य वापस करने के लिए - बस पैरामीटर के रूप में सरणी में पास करें।
Test() {
Boolean[] flag = new Boolean[1];
flag[0] = false;
new MyClass(flag);
System.out.println(flag[0]); // Will output 'true'
}
class MyClass {
MyClass(Boolean[] flag) {
// Do some work here, then set flag[0] to show the status
flag[0] = true;
}
}
/************************************************
Put the return value as a private data member, which gets
set in the constructor. You will need a public getter to
retrieve the return value post construction
******************************************************/
class MyClass
{
private Boolean boolReturnVal;
public Boolean GetReturnVal() { return(boolReturnVal); }
MyClass() // constructor with possibly args
{
//sets the return value boolReturnVal
}
public static void main(String args[])
{
MyClass myClass = new MyClass();
if (myClass.GetReturnVal())
{
//success
}
}
}
- 1. सी # में कन्स्ट्रक्टर का उपयोग कर मूल्य कैसे वापस करें?
- 2. एक थ्रेड अपने काम को खत्म करने के बाद एक मूल्य कैसे वापस कर सकता है?
- 3. कतार :: पॉप अब एक मूल्य वापस कर सकते हैं?
- 4. एक जटिल वापसी मूल्य वापस कैसे करें?
- 5. जावा: ऑब्जेक्ट क्लास में एक कन्स्ट्रक्टर है?
- 6. क्या एक वीबीस्क्रिप्ट फ़ंक्शन एक शब्दकोश वापस कर सकता है?
- 7. यदि मूल्य शून्य है तो मैं एक sqldatareader को मान कैसे वापस कर सकता हूं?
- 8. एक असीमित विधि कैसे एक मूल्य वापस करने के लिए?
- 9. क्यों जावा एकाधिक पैरामीटर ले सकता है लेकिन केवल एक ही वस्तु वापस कर सकता है?
- 10. सी # थ्रेड विधि एक मूल्य वापस?
- 11. मैं जेडीअलॉग बॉक्स से मूल जेएफआरएएम में एक मूल्य कैसे वापस कर सकता हूं?
- 12. मैं ऑटोहोटीकी स्क्रिप्ट से एक मूल्य कैसे वापस कर सकता हूं?
- 13. मैं एक विम स्क्रिप्ट में पर्ल विधि से मूल्य कैसे वापस कर सकता हूं?
- 14. क्या डैपर एक एसक्यूएल फ़ंक्शन से मूल्य वापस कर सकता है?
- 15. इसे वापस करने से बचने के लिए एक निर्माता क्या मूल्य लौटा सकता है?
- 16. मैं एक स्कोप्ड लॉक कैसे वापस कर सकता हूं?
- 17. मैं एक एसवीएन प्रतिबद्ध कैसे वापस कर सकता हूं?
- 18. क्या एक रननेबल एक मूल्य लौटा सकता है?
- 19. जावा में, एक अंतिम क्षेत्र एक कन्स्ट्रक्टर सहायक से शुरू किया जा सकता है?
- 20. क्या एक कन्स्ट्रक्टर एक उप-क्लास लौटा सकता है?
- 21. एक enum एक पैकेज-निजी कन्स्ट्रक्टर क्यों हो सकता है?
- 22. क्या कन्स्ट्रक्टर सी ++ में एक और कन्स्ट्रक्टर कॉल कर सकता है?
- 23. एक कन्स्ट्रक्टर-एर्ग फील्ड
- 24. Dispatcher.Invoke के साथ एक मूल्य कैसे वापस करें?
- 25. जावा में एक बुलियन विधि कैसे वापस करें?
- 26. एक कन्स्ट्रक्टर
- 27. jQuery कैसे एक सरणी वापस कर सकता है और अभी भी यह एक jQuery वस्तु हो सकता है?
- 28. जावा में, मैं एक निजी कन्स्ट्रक्टर के साथ कक्षा कैसे बना सकता हूं जिसका सुपरक्लास भी निजी कन्स्ट्रक्टर है?
- 29. मैं एक विधि को कैसे याद कर सकता हूं जो रूबी में सच, झूठी, या शून्य वापस कर सकता है?
- 30. हास्केल में टाइप कन्स्ट्रक्टर के अलावा एक मूल्य कन्स्ट्रक्टर क्यों है?
संपादन की तरह कुछ करने के लिए इस सवाल का शीर्षक पर विचार करें: सिद्धांत इसे समझने के लिए "जावा: यहाँ मेरी निर्माता एक मूल्य लौटने है?" मेरे पास एक विशिष्ट सवाल था कि जावा कैसे रचनाकारों से मूल्य लौटाता है और मैंने सोचा कि यह प्रश्न उस सामान्य विषय पर था ... इसके बजाय यह कुछ है "सहायता, मैं अपने कन्स्ट्रक्टर को रिटर्न वैल्यू असाइन नहीं कर सकता!" – Jan