2012-08-06 8 views
17

शुरू करने से पहले मैं बस सभी को यह जानना चाहूंगा कि मैंने वास्तव में यह अच्छा समय बिताया है और स्पष्टीकरण और परिभाषाओं के बहुत सारे पाया है। लेकिन फिर भी इस विषय को पढ़ने में घंटों खर्च करने के बाद भी अस्पष्ट लगता है। मुझे पता है कि मुझे ऐसे प्रश्न पूछना है जो समुदाय को बेहतर कर सकें लेकिन यह सिर्फ मेरे लिए यह देखने के लिए है कि मुझे जावाबीन की स्पष्ट समझ है या नहीं।सादे अंग्रेजी में जावाबीन्स क्या हैं?

  • वर्ग को लागू करना चाहिए Serializeable
  • कक्षा गुण हैं:

    मैं क्या बाहर कर सकते हैं से, एक JavaBean मूल रूप से यानी सिर्फ छोड़कर यह कुछ परंपराओं का पालन करता है कि किसी भी अन्य जावा वर्ग की तरह एक वर्ग है, माना जाता है कि वे निजी हैं और उनके नाम लोअरकेस अक्षर

  • से शुरू होते हैं प्रत्येक संपत्ति के पास इसके संबंधित गेटर और सेटर विधियां होनी चाहिए।
  • प्रत्येक सेटर विधि उपसर्ग 'get' के साथ शुरू होती है जिसके बाद संपत्ति का नाम उदा। setName()
  • सेटर तरीकों सार्वजनिक और निरर्थक हैं
  • ही गेटर तरीकों पर लागू होता है (उपसर्ग 'के लिए', जनता, वापसी प्रकार संबंधित संपत्ति वर्ग प्रकार आदि)
  • बजाय 'प्राप्त' एक के बूलियन गुण के लिए उपसर्ग 'है'
  • का उपयोग करता है कड़ाई से यह कक्षा का उदाहरण है जिसे 'बीन' माना जाता है जिसे कक्षा स्वयं ही नहीं माना जाता है।

और वहां आपके पास पढ़ने के बहुत लंबे समय बाद, यह है कि मैं इसे बाहर कर सकता हूं ... क्या यह है? क्या मैं बंद हूँ? क्या मेरे पास यह पूरी तरह गलत है?

... हर किसी का जवाब के लिए धन्यवाद मैं इस बुलेट सूची :-)

+0

संबंधित: http://stackoverflow.com/questions/1727603/places-where-javabeans-are-used – assylias

+0

आपको बुलियन संपत्ति गेटटर के बारे में कोई गलती है: आपने 'है' के बजाय 'सेट' लिखा है। – Autar

उत्तर

11

एक JavaBean एक मानक है अद्यतन सकता है, ताकि।

1) वर्ग Serializable
2 को लागू करता है) सभी क्षेत्रों सार्वजनिक setters और getters पहुँच को नियंत्रित करने के लिए है: सभी JavaBeans निम्नलिखित 3 गुण हैं।
3) एक सार्वजनिक नो-तर्क कन्स्ट्रक्टर।

+6

मैंने सोचा कि serializable आवश्यक नहीं था। – assylias

+3

http://stackoverflow.com/questions/3142181/have-java-beans-to-be-serializable –

+0

मुझे लगता है कि मानक को पूरा करना आवश्यक है; अभ्यास में सभी मामलों में काम करने के लिए आवश्यक नहीं हो सकता है। – hvgotcodes

4

हाँ, यह बहुत अधिक है।

बस अतिरिक्त बिट्स के एक जोड़े:

  • Getters कोई पैरामीटर नहीं, और setters संपत्ति के रूप में एक ही प्रकार के एक एकल पैरामीटर लेने
  • गुण पढ़ा है या लिखने-ही छोड़ते हुए से कर सकते हैं सेटर या गेटर क्रमशः
  • boolean ही टिककर खेल उपसर्ग का उपयोग

'है' और मैं सख्ती से लगता है कि यह उदाहरणों कि "सेम", नहीं वर्ग हैं।

0

हमारे साथियों की जवाब के पूरक:

  1. एक addXXXListener विधि के साथ एक श्रोता जोड़ें।
  2. एक removeXXXListener विधि के साथ श्रोता को हटाएं।
  3. बूलियन (आदिम) फ़ील्ड में getXXX विधि के बजाय isXXX विधि होनी चाहिए।

चूंकि यह एक मानक है, इसलिए इसका पालन करना महत्वपूर्ण है, क्योंकि जावा में लाइब्रेरी और तकनीकें इसे हुड के तहत उपयोग कर सकती हैं। उदाहरण: JSPs में अभिव्यक्ति भाषा, जीयूआई बिल्डरों, आदि

विशिष्टता: http://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/

+1

आपने देखा है कि श्रोताओं को जरूरी है? मैंने इसके बारे में नहीं सुना है ... – maba

+0

वे आवश्यक नहीं हैं, लेकिन यदि आपको उपयोग करना है, तो आपको मानक का पालन करना चाहिए। कम से कम मैंने इसका अध्ययन किया जब मुझे पांच साल पहले मेरा एससीजेपी मिला। एक नज़र डालें: http://www.oracle.com/technetwork/java/javase/documentation/javabeans-getlisteners-192680.html – davidbuzatto

2

यह है कि है? क्या मैं बंद हूँ?

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

यह आपको कई ढांचे में बुनियादी मॉडल के साथ काम करने की अनुमति देता है। बीन्स का उपयोग आमतौर पर एक साधारण लेआउट संरचना में डेटा को संग्रहीत करने और पुनर्प्राप्त करने के लिए किया जाता है ताकि डेटा मॉडल को विशिष्ट आर्किटेक्चर में साझा किया जा सके। उदाहरणों में यूआई में विभिन्न संवादों के साथ काम करने के लिए एक ही डेटा का उपयोग करके या किसी दिए गए ओआरएम (ऑब्जेक्ट रिलेशनशिप मैपिंग) के परिणाम प्राप्त करने के लिए एक ही डेटा का उपयोग करके फायरिंग कार्यक्रम शामिल हैं। अतिरिक्त उदाहरण जिन्हें आप देखना चाहते हैं वे डीटीओ (डेटा ट्रांसफर ऑब्जेक्ट), वीओ (वैल्यू ऑब्जेक्ट्स), और ईजेबी (एंटरप्राइज़ जावा बीन्स) हैं।

संबंधित मुद्दे