दिलचस्प पोस्ट
एंड्रॉइड में पार्स की गई छवि को कैसे क्रॉप करना है? क्या मैं गठबंधन कर सकता हूँ: nth-child () या: एक मनमानै चयनकर्ता के साथ nth-of-type ()? मेरा सिस्टम.न्यूमेरिक नेमस्पेस कहां है? सी ++ का उपयोग करते हुए मैं विंडोज में एप्लीकेशन डाटा पथ कैसे प्राप्त करूं? मैं एक एकल पृष्ठ पर एक से अधिक रिकैप्चस कैसे दिखाऊं? क्या मैं / sdcard पर एक SQLite डीबी डाउनलोड कर सकते हैं और इसे मेरे एंड्रॉइड ऐप से एक्सेस कर सकते हैं? पीडीओ के साथ एक तैयार डालने के बाद आखिरी प्रविष्टि आईडी प्राप्त करें HTTPS पर HttpClient का उपयोग करके सभी प्रमाणपत्रों को विश्वास करना कैसे पूरी तरह से Xcode 4 को दूर करने के लिए क्या लैम्ब्डा फ़ंक्शंस / अभिव्यक्तियों के साथ समर्थित है? मैं ToString () के साथ एक नल योग्य तारीख का समय कैसे प्रारूपित कर सकता हूँ? PrimeFaces के साथ jQuery और jQuery प्लगिन का उपयोग कैसे करें Django में contrib.auth के मॉडल उपयोगकर्ता में ईमेल फ़ील्ड अनूठा कैसे करें एंड्रॉइड – एक प्रगति बर्र को क्षैतिज के बजाय एक लंबवत पट्टी बनाने के लिए सेट करें? सभी com.android.support पुस्तकालयों को उसी संस्करण का उपयोग करना चाहिए

संपत्ति (बिना अतिरिक्त प्रसंस्करण) बनाम सार्वजनिक क्षेत्र

जब भी गुणों की विश्वसनीयता के बारे में सवाल होता है, तो मुझे लगता है कि ज्यादातर चर्चा कार्य / तरीके बनाम संपत्तियों के आसपास होती है। लेकिन मुझे यह भी पता होना चाहिए कि संबद्ध प्राइवेट फ़ील्ड बनाम पब्लिक फील्ड के साथ संपत्ति का उपयोग करने के लिए सम्मोहक कारण यह है कि किसी अन्य प्रसंस्करण के साथ सबसे सामान्य मिल / सैट के व्यवहार के लिए, मैं इसका मतलब हूं

public string CustomerName; 

बनाम

 private string customerName; public string CustomerName { get{return customerName;} set(string value){this.customerName=value;} } 

Solutions Collecting From Web of "संपत्ति (बिना अतिरिक्त प्रसंस्करण) बनाम सार्वजनिक क्षेत्र"

आपको स्रोत / बाइनरी संगतता प्राप्त होती है, यदि आपको बाद में दूसरे व्यवहार को जोड़ने की आवश्यकता होती है, तो आपको ब्रेक पॉइंट जोड़ना पड़ता है, और यह सिर्फ दार्शनिक तौर पर क्लीनर है (व्यवहार के बारे में देखभाल, संग्रहण तंत्र नहीं)

ध्यान दें कि आपको सी # 3 में पूरे ब्लॉक की आवश्यकता नहीं है:

 public string CustomerName { get; set; } 

अधिक जानकारी के लिए "क्यों गुण मैटर" पर मेरा लेख देखें

  1. आप किसी व्युत्पन्न कक्षा में "नई" संपत्ति को ओवरराइड कर सकते हैं या कम से कम कर सकते हैं

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

यह ज्यादातर जावा में एक बग है कई अन्य भाषाओं (पायथन, डेल्फी, ग्रूवी) में, कंपाइलर आपके लिए गेटर्स और सेटर्स उत्पन्न करेगा जब तक कि आप कोड की आपूर्ति न करें

इसका अर्थ है कि आप Groovy में एक "सार्वजनिक" फ़ील्ड का उपयोग कर सकते हैं और कंपाइलर चुपचाप उत्पन्न करेगा और सेटर / सेटर खोलेंगे यदि आपको कोई क्षेत्र बदला गया है, तो आपको अतिरिक्त जादू करने की ज़रूरत है, तो आप एक विशेष सेटर को पेश कर सकते हैं और सब कुछ काम करेगा।

यह उन चीजों में से एक है जहां वास्तविकता एक डिजाइन के साथ संघर्ष करती है जावा डिजाइनर संकलक को ऐसा कुछ करने के लिए नहीं चाहते थे जो आप नहीं देख सकते। कई सालों पहले एक अच्छा विचार की तरह लग रहा था, बहुत अच्छी तरह से बाहर नहीं हुआ।

मैं संपत्ति का एक उपयोगी उपयोग देखता हूं यदि आप अपने ऑब्जेक्ट के संग्रह को एक डाटाग्रीड या डाटाग्रीड दृश्य या अन्य बाइंडेबल कंट्रोल के साथ बाँध रहे हैं, तो केवल मान्यता प्राप्त योग्य नाम हैं संपत्ति और सार्वजनिक क्षेत्र नहीं।

आप गुणों के साथ कुछ बुनियादी सत्यापन भी प्रदान कर सकते हैं उदाहरण के लिए किसी संपत्ति को अमान्य स्थिति में ऊंचाई के लिए नकारात्मक मान की तरह सेट करना रोकने के लिए:

 private int height; public int Height { get{ return height; } set { if (value > 0) { height = value; } } }