इस सवाल के जवाब में कहने के लिए बहुत कुछ है, ये पहले विचार हैं जो मेरे दिमाग में आए:
और सबसे पहले, ध्यान रखें कि privateकेवल एक संकलन-समय निर्माण है - इसे रनटाइम पर लागू नहीं किया जा सकता ( प्रासंगिक चर्चा के लिए यहां और यहां देखें )। जैसे, कृपया privateसुरक्षा उद्देश्यों के लिए किसी भी तरह से उपयोगी होने की किसी भी धारणा का खंडन करें । यह बस नहीं है कि यह किस बारे में है।
यह है कैप्सूलीकरण के बारे में, और आप एक क्षेत्र या अपने घटक पर विधि है जब कि आप इसे में encapsulate करने के लिए चाहते हैं, यह स्पष्ट है कि यह कहीं और से पहुँचा नहीं किया जाना चाहिए बनाने, तो आप पूरी तरह से यह सुनिश्चित करना चाहिए private: यही कारण है कि के privateलिए है: यह आपके इरादे को इंगित करता है कि आपने जो कुछ भी डाला है उसे कक्षा के बाहर से नहीं छुआ जाना चाहिए।
उसी के लिए जाता है public: यह भी एक संकलन-समय-केवल निर्माण है, इसलिए यह तथ्य कि कक्षा के सदस्य publicडिफ़ॉल्ट रूप से हैं, जबकि सच है, रनटाइम पर बिल्कुल शून्य अर्थ है। लेकिन जब आपके पास कोई सदस्य होता है, तो आप स्पष्ट रूप से बाहरी दुनिया को अपनी कक्षा के एपीआई के एक हिस्से के रूप में उजागर करने का इरादा रखते हैं, तो आपको publicइस इरादे को इंगित करने के लिए बिल्कुल बनाना चाहिए : यही वह publicहै।
यह सामान्य रूप से टाइपस्क्रिप्ट पर लागू होता है। कोणीय में विशेष रूप से, घटक वर्गों पर सार्वजनिक सदस्य होने के लिए निश्चित रूप से वैध उपयोग के मामले हैं: उदाहरण के लिए, कंटेनर / घटक (उर्फ स्मार्ट / डंब ) पैटर्न को लागू करते समय , "गूंगा" बच्चों को "स्मार्ट" माता-पिता के साथ कंस्ट्रक्टर इंजेक्शन के माध्यम से, माता-पिता पर सदस्यों को क्या करना चाहिए और क्या नहीं, इस बारे में अपने इरादे से संवाद करना बेहद जरूरी है: अन्यथा, जब आप उन मूक-बधिर बच्चों को उनके माता-पिता की शराब कैबिनेट में इधर-उधर फैंकते हैं, तो आश्चर्यचकित न हों।
तो, आपके प्रश्न का मेरा उत्तर:
क्या मुझे हमेशा नीचे की तरह उन सभी के लिए निजी जोड़ना चाहिए?
एक जोरदार नहीं है । आपको हमेशा जोड़ना नहीं चाहिए privateक्योंकि ऐसा करने से आप कीवर्ड के उद्देश्य को पराजित करते हैं, क्योंकि यह अब किसी भी इरादे को इंगित नहीं करता है यदि आप इसे हर जगह डालते हैं: तो आप इसे कहीं भी नहीं डाल सकते हैं।