/ / जावा इनिशियलाइज़ेशन ब्लॉक - जावा, स्विंग, जिबेट, अनाम-वर्ग, इनिशियलाइज़र

जावा प्रारंभिक ब्लॉक - जावा, स्विंग, jtable, अज्ञात वर्ग, प्रारंभकर्ता

क्या कोई मुझे निम्नलिखित निर्माण को समझने में मदद कर सकता है? मुझे यह समझने में परेशानी हो रही है कि क्या यह एक इनिशियलाइज़र या एक अनाम वर्ग है। मैं इस वाक्य-विन्यास से परिचित नहीं हूँ।

   JTable jt = new JTable(data, fields) **{
public TableCellRenderer getCellRenderer(int row, int column) {
// TODO Auto-generated method stub
return renderer;
}
};**

उत्तर:

उत्तर № 1 के लिए 6

यह एक अनाम आंतरिक वर्ग बनाता है जो JTable का विस्तार करता है, और getCellRenderer विधि को ओवरराइड करता है।

लंबी व्याख्या:

आपका एक वर्ग बना रहा है जो JTable का विस्तार किए बिना स्पष्ट रूप से इसे मानक वर्ग घोषणा का उपयोग करने के बजाय एक नाम प्रदान करता है:

public class ExtendedJTable extends JTable{}

इस वर्ग की दृश्यता सीमित हैवर्ग जिसके अंदर यह परिभाषित और त्वरित है। यह उदाहरण के लिए काफी उपयोगी है जब आपको आवश्यकता होती है, जैसे कि आपके द्वारा पोस्ट किए गए कोड में, एक विशेष वर्ग (JTable) के एक विधि (getCellRenderer ()) को ओवरराइड करने के लिए, कुछ उद्देश्य के लिए वर्तमान वर्ग के संदर्भ तक सीमित है।

इस दृष्टिकोण के कुछ लाभ हैं और कुछ सीमाएँ भी हैं। एक गहरी चर्चा के लिए इस पर एक नज़र है लेख.


जवाब के लिए 2 № 2

आप यहाँ 2 काम कर रहे हैं:

  • JTable का विस्तार करने वाले वर्ग का एक ऑब्जेक्ट बनाएं। यह एक अनाम वर्ग है क्योंकि इसे अलग से कहीं और घोषित नहीं किया गया है।
  • इस वर्ग में, आप JTable की विधि getCellRenderer (int row, int column) को ओवरराइड करते हैं;