में ब्रेसिज़ की एक अनिवार्य जोड़ी के साथ एक सिंगल-लाइन लूप निम्न स्निपेट में कोड ठीक काम करता है। यह int
के स्थिर क्षेत्र का उपयोग करके बनाए गए ऑब्जेक्ट्स की संख्या की गणना करता है जो cnt
है।जावा
public class Main
{
private static int cnt;
public Main()
{
++cnt;
}
public static void main(String[] args)
{
for (int a=0;a<10;a++)
{
Main main=new Main();
}
/*for (int a=0;a<10;a++)
Main main=new Main();*/
System.out.println("Number of objects created : "+cnt+"\n\n");
}
}
यह निम्न आउटपुट प्रदर्शित करता है।
Number of objects created : 10
केवल सवाल यह है कि जब मैं ऊपर for
पाश से घुंघराले ब्रेसिज़ की जोड़ी को दूर (टिप्पणी की for
पाश देखें), एक संकलन समय त्रुटि
नहीं एक बयान का संकेत जारी किया जाता है है ।
क्यों इस विशेष स्थिति में, ब्रेसिज़ की एक जोड़ी अनिवार्य भले ही पाश केवल एक सिंगल स्टेटमेंट शामिल है?
'मुख्य मुख्य = नया मुख्य();' एक घोषणा है, एक बयान नहीं। – Mysticial
@ मिस्टिकियल: प्रारंभिकरण के साथ एक घोषणा। प्रारंभिक भाग को कथन क्यों नहीं माना जाता है? – Razvan
@Razvan मुझे कोई तकनीकी कारण नहीं दिख रहा है कि यह क्यों नहीं कर सकता। तो यह जावा या सी/सी ++ से एक डिज़ाइन विकल्प प्रतीत होता है (जहां जावा को इसके अधिकांश मूल अर्थशास्त्र विरासत में मिला है)। – Mysticial