यह एक प्रारंभिक ब्लॉक है जिसे निष्पादित किया जाता है जबकि कक्षा का उदाहरण लोड/बनाया जा रहा है और इसका उपयोग कक्षा के सदस्य गुणों को आरंभ करने के लिए किया जाता है (जावा http://download.oracle.com/javase/tutorial/java/javaOO/initial.html देखें)। आप जितना चाहें उतने ब्लॉक प्राप्त कर सकते हैं और उन्हें ऊपर से नीचे तक तुरंत चालू किया जाएगा।
उदाहरण ब्लॉक के अतिरिक्त, आप स्थिर सदस्यों को प्रारंभ करने के साथ-साथ कई स्थिर ब्लॉक भी प्राप्त कर सकते हैं। वे इस प्रकार के रूप में घोषित किया जाएगा: कक्षा प्रारंभ की जा रही है
public class Initialization {
static int b = 10;
int a = 5;
static {
b = -9;
}
{
a += 2;
}
public static void main(String[] args) throws Exception {
System.out.println(ClientVoting.b);
System.out.println(new ClientVoting().a);
System.out.println(ClientVoting.b);
System.out.println(new ClientVoting().a);
}
static {
b = 1;
}
{
a++;
}
}
, वहीं स्थिर सदस्य "बी" 10 के रूप में आरंभ नहीं हो जाता है, तो पहले स्थिर गुंजाइश -9 के लिए अपने मूल्य बदलता है, और बाद में 1. यह करने के लिए क्लास लोड होने पर केवल एक बार निष्पादित किया जाता है। यह मुख्य विधि की पहली पंक्ति के प्रारंभ से पहले निष्पादित करता है।
दूसरी तरफ, आपकी कक्षा के समान उदाहरण उदाहरण "ए" है। ए को 5 के रूप में प्रारंभ किया गया है, तो इंस्टेंस ब्लॉक इसे 7 तक अपडेट करता है, और अंतिम ब्लॉक 8 तक। जैसा कि अपेक्षित है, स्थिर सदस्यों को केवल इस कोड में एक बार प्रारंभ किया जाता है, जबकि इंस्टेंस ब्लॉक निष्पादित होते हैं हर बार जब आप एक नया उदाहरण बनाते हैं।
इस उदाहरण के लिए उत्पादन 1 8 1 8
स्रोत
2011-05-03 05:00:38
भी देखें [8.6 उदाहरण initializers] (http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.6 है)। – trashgod
स्टीफन, यह विषय के कारण डुप्लिकेट हो सकता है लेकिन मुझे इसे पूरी तरह से अलग तरीके से मिला – nairdaen
हाँ मान्य है, जैसा कि अन्य ने बताया है। हालांकि, आपके जावा प्रमाणन के बाद आप अपने जीवन में किसी बिंदु पर प्रोग्रामिंग करेंगे। कृपया, अपने दैनिक काम में इस संरचना का कभी भी उपयोग न करें। कृप्या। मैं जावा प्रमाणन से नफरत करता हूं। यह आपको सभी प्रकार के परेशानियों से घिरा हुआ, और कभी-कभी उपटेल, आपके सहकर्मियों को भ्रमित करने और बग पेश करने के तरीके सिखाता है। – rfeak