CodeGym /Java Blog /अनियमित /पुराना स्तर 02
John Squirrels
स्तर 41
San Francisco

पुराना स्तर 02

अनियमित ग्रुप में प्रकाशित

CodeGym - Java में प्रोग्रामिंग सीखना

पुराना स्तर 02 - 1प्रोग्रामिंग का अध्ययन करने और शिक्षा प्राप्त करने का एक बिल्कुल नया तरीका कैसा रहेगा? ऐसा कुछ भी नहीं दिखता है जिसे आपने पहले देखा हो। सीखने के बारे में क्या ख्याल है, जहां आपका लक्ष्य, साधन और परिणाम है? जावा सीखने के लिए आपको नए ऑनलाइन प्रोग्रामिंग कोर्स पेश करते हुए मुझे खुशी हो रही है।

1 प्रशिक्षण एक ऑनलाइन गेम है

आप एक कार्य लेते हैं, उसे निष्पादित करते हैं और पुरस्कार प्राप्त करते हैं। मुझे लगता है कि यह आपके लिए स्पष्ट और सामान्य है। कार्य सबसे विविध हैं: कोड पढ़ना, कार्यों को हल करना, वीडियो-पाठ, कोड में त्रुटियों का सुधार, नई सुविधाओं को जोड़ना, बड़े कार्य, गेम लिखना और बहुत कुछ।

2 केवल आवश्यक वस्तुएं

कोर्स 5 साल तक नहीं चलने के लिए, मैंने सभी उपयोगी चीजों को फेंक दिया और इसमें से केवल सबसे जरूरी चीजें ही छोड़ीं। मैंने श्रम बाजार में दसियों रिक्तियों का विश्लेषण किया। जावा जूनियर डेवलपर की नौकरी पाने के लिए नौसिखियों को जानने के लिए सभी विषयों को पाठ्यक्रम में शामिल किया गया है।

3 मैंने आपके प्रशिक्षण के बारे में अच्छी तरह से संपर्क किया है

एक पूर्ण पाठ्यक्रम में 500 मिनी-व्याख्यान और 1200 (!) व्यावहारिक कार्य शामिल हैं । कार्य छोटे हैं, लेकिन वे अनेक हैं। उनमें से बहुत कुछ है। बस इतना कम, जिसे करने से आपको इतना मूल्यवान अनुभव प्राप्त होगा। जोड़े में काम करना, विभिन्न खेल, बड़े कार्य, वास्तविक परियोजनाएँ और अन्य प्रकार के अभ्यास भी हैं।

4 आप गेम को पूरा नहीं कर सकते और डेवलपर नहीं बन सकते

पाठ्यक्रम में 40 स्तर होते हैं। आप अगले स्तर पर तभी जा सकते हैं, जब आपने वर्तमान स्तर पर अधिकांश कार्यों को हल कर लिया हो। छोटे और आसान से शुरू, बड़े और बहुत उपयोगी के साथ समाप्त। अंत तक पहुँचने वाले प्रत्येक व्यक्ति को 300-500 घंटे का व्यावहारिक अनुभव प्राप्त होगा। और यह जीतने का एक शानदार मौका देता है। और नौकरी पाने के लिए।

5 लक्ष्य उन्मुख नौकरी के लिए साक्षात्कार की तैयारी

अंतिम 10 स्तर रिज्यूमे लिखने, साक्षात्कार की तैयारी करने और टीम-वर्क के कौशल प्राप्त करने के लिए समर्पित हैं। नौकरी के साक्षात्कार और उनके विश्लेषण के वीडियो जोड़े जाएंगे। अच्छी तरह से, निश्चित रूप से, उत्तर के साथ साक्षात्कार पर विशिष्ट प्रश्न। पुराना स्तर 02 - 2

6 आप कार्यों को सीधे साइट पर हल कर सकते हैं

यह बहुत आसान और प्रभावी है। व्याख्यान में एक नए कार्य का अभी-अभी विश्लेषण करने के बाद आपको साइट पर, सादृश्य द्वारा अपना खुद का बनाना होगा। जो लोग आईडीई में कार्य करना चाहते हैं उनके लिए एक प्लगइन है जो आपको दो क्लिक में एक कार्य प्राप्त करने और एक में जांच करने के लिए सौंपने में सक्षम बनाता है । व्याख्यान, उदाहरणों का विश्लेषण, वेब साइट पर सीधे कार्यों को हल करना, आईडीई में कार्यों को हल करना - सिद्धांत और व्यवहार के बीच की खाई इतनी पतली है जितनी पहले कभी नहीं थी।

7 त्वरित कार्य जांच (सेकेंड से भी कम समय में)

क्या आप उस स्थिति से परिचित हैं, जब आपने जाँच के लिए एक कार्य/कार्य सौंपा था, और एक सप्ताह तक परिणामों की प्रतीक्षा करनी पड़ी, क्योंकि जाँच करने वाला व्यक्ति व्यस्त है? ज्यादातर ऑफलाइन कोर्स का यही हाल है। CodeGym में आपको एक «निष्पादित/चेक» बटन दबाने के बाद, एक सेकंड से भी कम समय में अपने कार्य समाधान के संकलन और जाँच के परिणाम मिलेंगे।

8 CodeGym इसे पसंद करता है, जब आप पढ़ाई के दौरान Facebook पर समय बिताते हैं

फेसबुक पर परियोजना के लिए समर्पित एक पेज है। इसमें आप दिलचस्प तकनीकी लेख, प्रेरक कहानियाँ, CodeGym समाचार और बहुत सी अन्य उपयोगी जानकारी पा सकते हैं।

9 कवरेज

व्याख्यानों में विभिन्न वेब-साइटों के कई संदर्भ हैं, जहाँ आप अन्य व्याख्याताओं के स्पष्टीकरण पढ़ सकते हैं। मेरा उद्देश्य यह है कि आप सामग्री को समझें, केवल मेरी बात न सुनें।

10 डेवलपर बनने के लिए आपको केवल अपने दिमाग और कंप्यूटर की आवश्यकता होगी

आप कितना समय अभ्यास करते हैं, इसके आधार पर आपको 3 से 6 महीने लगेंगे।

11 समर्थन

पुराना स्तर 02 - 3जब आप हजारों कार्यों का सामना करेंगे तो निस्संदेह प्रश्न उठेंगे। हमने एक विशेष सेवा स्थापित की है, जहाँ आप कार्यों के बारे में प्रश्न पूछ सकेंगे। अन्य CodeGym-छात्र, मॉडरेटर, स्वयंसेवक और सेवा के संस्थापक सदस्य आपको उत्तर देंगे।

12 समुदाय

हम मानते हैं कि शक्ति एकता में है। इसलिए हमने समुदाय बनाया है, जहां आप प्रश्न पूछ सकते हैं; विभिन्न विषयों पर चर्चा करें, लेख और ब्लॉग साझा करें। इसके अलावा, परिचित होने पर नौकरी पाने के लिए एक समुदाय आदर्श स्थान है। इसलिए बेझिझक स्मार्ट सवाल पूछें और स्मार्ट जवाब दें। जितना अधिक सक्रिय आप व्यवहार करते हैं और दूसरों की मदद करते हैं, उतनी ही अधिक संभावना है कि एसोसिएशन के अन्य सदस्य आपको उनकी परियोजना में शामिल होने का सुझाव देंगे।

आप एक नए स्तर पर पहुंच गए हैं

लेवल 2

पुराना स्तर 02 - 4

1 एली, सबका आधार

- अरे, अमीगो। आज मैं आपको बताना चाहता हूं कि एक विशिष्ट जावा प्रोग्राम कैसे संरचित होता है। मुद्दा यह है कि प्रत्येक जावा प्रोग्राम में कक्षाएं और वस्तुएं होती हैं - मुझे पहले से ही पता है कि कौन सी कक्षाएं हैं। और वस्तुएँ क्या हैं? - एक छोटे जहाज के निर्माण के अनुरूप, आपको पहले एक चित्र बनाने की जरूरत है, और फिर इसे शिपयार्ड को दें। इस ड्राइंग के आधार पर एक जहाज तैयार किया जाएगा। या पाँच जहाज। दरअसल, जितने आप चाहें। एक रेखाचित्र के आधार पर दर्जनों एक जैसे जहाजों का निर्माण किया जाता है, बस यही है! - जावा प्रोग्रामिंग में सभी चीजें बिल्कुल एक जैसी हैं। - प्रोग्रामर एक डिजाइन इंजीनियर की तरह होता है। और अगर डिज़ाइन इंजीनियर को चित्र बनाने हैं, तो जावा प्रोग्रामर को कक्षाएं लिखनी होंगी। फिर, भागों को आरेखण के आधार पर बनाया जाता है, और वस्तुओं को कक्षाओं के आधार पर बनाया जाता है। - सबसे पहले, हम कक्षाएं लिखते हैं (चित्र बनाते हैं), और बाद में प्रोग्राम रनटाइम पर, जावा वर्चुअल मशीन इन कक्षाओं का उपयोग करके ऑब्जेक्ट बनाती है। इसी तरह से जहाज बनाए जाते हैं। एक चित्र और बहुत सारे जहाज हैं। अलग-अलग जहाज हैं जिनके अलग-अलग नाम हैं और विभिन्न कार्गो ले जाते हैं। हालाँकि, वे बहुत अधिक समान हैं: उन सभी की संरचना समान है और समान कार्य कर सकते हैं। - जहाजों के मामले में, सब कुछ स्पष्ट है। मुझे यह समझने के लिए कुछ और तुलनाएँ दें कि यह सब क्या है? - ज़रूर। उदाहरण के लिए, मधुमक्खियाँ ... पुराना स्तर 02 - 5- अरे नहीं, एक मिनट रुकिए, मधुमक्खियाँ मुझे कुछ बुरा याद दिलाती हैं। एंथिल के बारे में बेहतर सोचो। - एंथिल ऑब्जेक्ट इंटरेक्शन का एक अच्छा उदाहरण है। सबसे सरल एंथिल में, चींटियों के तीन वर्ग होते हैं: एक रानी, ​​​​सैनिक और कार्यकर्ता चींटियाँ। प्रत्येक वर्ग के लिए चींटियों की संख्या में अंतर होता है। रानी घोंसले में अकेली है; वहाँ सैकड़ों सैनिक और सैकड़ों काम करने वाली चींटियाँ हैं। तो, हम कह सकते हैं, तीन वर्ग और सैकड़ों वस्तुएँ हैं। चींटियाँ एक दूसरे के साथ, समान चींटियों और अन्य वर्गों की चींटियों के साथ सख्त नियमों के अनुसार संवाद करती हैं। - यह एक आदर्श उदाहरण है। एक विशिष्ट कार्यक्रम के लिए, यह सब समान है। एक मुख्य वस्तु अन्य सभी वर्गों की वस्तुओं का निर्माण करती है। वस्तुएं एक दूसरे के साथ और एक कार्यक्रम की "बाहरी दुनिया" के साथ बातचीत करना शुरू कर देती हैं। वस्तुओं का व्यवहार उनके अंदर हार्डकोडेड होता है। - मैं पूरी तरह से नहीं समझा। बल्कि बिल्कुल नहीं समझते। - ये दोनों व्याख्याएं एक ही सिक्के के दो पहलू हैं। सच्चाई कहीं बीच में है। पहला उदाहरण (ड्राइंग और जहाजों वाला) वर्ग और इस वर्ग की वस्तुओं के बीच संबंध दिखाता है। समानता बहुत निकट है। दूसरा उदाहरण (एंथिल वाला) लिखित कक्षाओं और रनटाइम पर मौजूद वस्तुओं के बीच संबंध दिखाता है। - क्या आपका मतलब है कि पहले हमें एक कार्यक्रम में मौजूद सभी वस्तुओं के लिए कक्षाएं लिखने की जरूरत है और क्या अधिक है, उनकी बातचीत का वर्णन करें? - हां, लेकिन यह जितना लगता है उससे कहीं ज्यादा आसान है। जावा में, प्रोग्राम रनटाइम पर सभी चीजें ऑब्जेक्ट हैं, और जब आप प्रोग्राम लिखते हैं, तो आपको ऑब्जेक्ट इंटरेक्शन के विभिन्न तरीकों का वर्णन करना चाहिए। ऑब्जेक्ट केवल एक दूसरे के तरीकों को कॉल करते हैं और उन्हें आवश्यक डेटा पास करते हैं। - यह स्पष्ट नहीं है, लेकिन लगभग स्पष्ट है। - लेकिन आप कैसे जानते हैं कि किन तरीकों को कॉल करना है और आपको किस डेटा को तरीकों में पास करना है? - यह निर्दिष्ट करने के लिए कि किस वर्ग के लिए बनाया गया था, प्रत्येक वर्ग का अपना विवरण होता है। इसी तरह प्रत्येक विधि का अपना विवरण है कि वह क्या करती है और उसे क्या डेटा भेजा जाना चाहिए। कक्षा का उपयोग करने के लिए, आपको सामान्य रूप से यह जानना होगा कि यह क्या करता है। इसके अलावा, आपको यह जानने की जरूरत है कि इस वर्ग की प्रत्येक विधि क्या करती है। लेकिन आपको यह जानने की जरूरत नहीं है कि यह कैसे किया जाता है । यह जादू का एक प्रकार है। - हम्फ। ऐसा लगता है।   - यहाँ, एक फ़ाइल को कॉपी करने वाले क्लास कोड पर एक नज़र डालें: पुराना स्तर 02 - 6- यह इतना आसान नहीं है, लेकिन मुझे पहले से ही तस्वीर मिल गई है। - अच्छा। बाद में मिलते हैं, मगरमच्छ!

2 ऋषि, चर और आदिम प्रकार

- अरे तुम, मुक्त श्रम। - मेरा मतलब है, «हाय, अमीगो»। मैं आपको चरों की आंतरिक संरचना से परिचित कराना चाहता हूं। आप पहले से ही जानते हैं कि प्रत्येक वेरिएबल के साथ मेमोरी का एक टुकड़ा जुड़ा होता है, जहाँ वेरिएबल अपनी वैल्यू को स्टोर करता है। - हाँ। आपने पिछली बार बताया था। - अच्छा। यह अच्छी बात है कि आप इसे याद करते हैं। फिर मैं जारी रखूंगा। - कक्षाएं । जब हम किसी प्रोग्राम में एक नए वर्ग का वर्णन करते हैं, तो इसका मतलब है कि हम एक नए जटिल यौगिक प्रकार की घोषणा करते हैं , जो डेटा या तो अन्य जटिल प्रकार या आदिम प्रकार होंगे। पुराना स्तर 02 - 7- आश्चर्य के लिए यह अभी भी स्पष्ट है। - चूंकि बड़े (जटिल) प्रकारों में बहुत सारे छोटे (आदिम) प्रकार होते हैं, उनकी वस्तुएं बहुत अधिक मेमोरी का उपयोग करती हैं। सामान्य आदिम प्रकार के चर से अधिक करते हैं। कभी-कभी बहुत अधिक। जटिल प्रकार के चर के असाइनमेंट में बहुत समय लगता है और बड़ी मात्रा में मेमोरी की प्रतिलिपि बनाने की आवश्यकता होती है। यही कारण है कि जटिल प्रकार के चर वस्तु को ही नहीं, बल्कि एक मात्र वस्तु संदर्भ (जो कि चार-बाइट का पता है) को संग्रहीत करते हैं। यह वस्तु डेटा तक पहुँचने के लिए पर्याप्त है। जेवीएम इससे संबंधित सभी कठिनाइयों को अपने ऊपर लेता है। - मैं समझा नहीं। - हम पहले ही चर्चा कर चुके हैं कि चर एक बॉक्स की तरह है। इसमें 13 रखने के लिए आप एक कागज़ पर संख्या लिख ​​कर एक डिब्बे में रख सकते हैं। - अब कल्पना कीजिए कि आपको एक बॉक्स (वैरिएबल) में कुछ बड़ा स्टोर करना है। उदाहरण के लिए, एक कुत्ता, एक कार, या आपका पड़ोसी जो। सरल बनाने के लिए आप एक आसान काम कर सकते हैं: कुत्ते की जगह कुत्ते की तस्वीर लगाएं, कार की जगह कार की नंबर प्लेट लगाएं, और जो का फोन नंबर खुद जो के बजाय कागज की एक शीट पर लिखा हो। - अब हम कागज का एक टुकड़ा लेते हैं और उस पर जो का फोन नंबर लिखते हैं। यह एक वस्तु संदर्भ की तरह है। यदि हम बॉक्स से एक शीट जो की संख्या लिखी है, को बाहर निकालते हैं, तो प्रतियां बनाते हैं और एक दो बॉक्स में डालते हैं, जो के संदर्भ बढ़ जाएंगे, लेकिन केवल एक जो हो सकता है। - ऐसे डाटा स्टोरेज का फायदा यह हैकई संदर्भ और केवल एक वस्तु हो सकती है । - यह रोमांचक है। वैसे तो मैं लगभग समझ ही गया था। केवल एक और प्रश्न का उत्तर दें: यदि मैं एक जटिल प्रकार के चर को दूसरे जटिल प्रकार के चर के लिए निर्दिष्ट करता हूँ तो क्या होगा? - फिर इन दो वेरिएबल्स में एक ही पता होगा। और, इसलिए, यदि आप एक जटिल प्रकार के चर में संग्रहीत डेटा को बदलते हैं, तो दूसरे का डेटा भी बदल जाएगाक्योंकि आप जानते हैं , वास्तव में केवल एक वस्तु है जो चर संदर्भों को संग्रहीत करते हैं। फिर भी, बहुत सारे वेरिएबल्स हो सकते हैं जो ऑब्जेक्ट के संदर्भों को संग्रहीत करते हैं। - और कोई वस्तु संदर्भ नहीं होने पर जटिल प्रकार के चर (संदर्भ / वर्ग प्रकार) में क्या संग्रहीत किया जाता है? क्या सच में ऐसा कुछ हो सकता है? - हाँ, अमीगो। आपने मेरे मुंह से शब्द निकाल दिए हैं। वो हो सकता है। यदि संदर्भ (जटिल) प्रकार चर में कोई वस्तु संदर्भ नहीं है, तो यह शून्य , एक विशेष "शून्य संदर्भ" संग्रहीत करता है। वास्तव में, यह केवल 0. के बराबर किसी वस्तु का पता संग्रहीत करता है। लेकिन जावा वर्चुअल मशीन कभी भी शून्य पते वाली वस्तु नहीं बनाती है, इसलिए यह हमेशा जानती है कि यदि संदर्भ चर 0 है, तो वहां कोई वस्तु नहीं है। पुराना स्तर 02 - 8क्या मुझे यह सही लगा? चर दो प्रकारों में विभाजित हैं - आदिम और संदर्भ। एक आदिम प्रकार का चर एक मान को संग्रहीत करता है जबकि एक संदर्भ प्रकार चर एक वस्तु संदर्भ को संग्रहीत करता है। आदिम प्रकार इंट, चार, बूलियन और कुछ और हैं। बाकी संदर्भ चर हैं, वे कक्षाओं का उपयोग करके बनते हैं। - सही है, लड़के।

3 एली, कौन सी वस्तुएँ हैं

पुराना स्तर 02 - 9- यहाँ आपका पसंदीदा शिक्षक फिर से है। चूँकि हम तेजी से आगे बढ़ते हैं, मैं आपको बताता हूँ कि वस्तुएँ क्या हैं और उनसे कैसे निपटें। - किसी भी वस्तु को बनाने के लिए आपको उसके पहले वस्तु का नाम (वर्ग) और कीवर्ड नया लिखना होगा। मान लें कि हमारे पास एक वर्ग कैट है, तो: पुराना स्तर 02 - 10- क्या होता है यदि आप सिर्फ एक वस्तु बनाते हैं और इसे [इसका संदर्भ] किसी भी चर के लिए निर्दिष्ट नहीं करते हैं? - यदि आप ऐसा करते हैं, तो जावा वर्चुअल मशीन ऑब्जेक्ट बनाएगी और तुरंत इसे कचरा (अप्रयुक्त वस्तु) घोषित करेगी। थोड़ी देर के बाद, यह उस वस्तु को कचरा संग्रहण के दौरान हटा देगा। - अगर मुझे इसकी आवश्यकता नहीं है तो मैं वस्तु को कैसे नष्ट कर सकता हूं? - तुम नहीं कर सकते।जैसे ही किसी वस्तु संदर्भ को संग्रहीत करने के लिए कोई चर नहीं होता है, वस्तु को कचरा के रूप में चिह्नित किया जाएगा और अगले कचरा संग्रह के दौरान जेवीएम इसे नष्ट कर देगा। जब तक कम से कम एक वस्तु संदर्भ है, इसे लाइव माना जाएगा और इसे नष्ट नहीं किया जाएगा। जब आप किसी वस्तु को जल्दी से नष्ट करना चाहते हैं, तो उसके सभी संदर्भों को शून्य पर सेट करें, अर्थात, उस वस्तु को संदर्भित करने वाले सभी चरों के लिए एक शून्य मान निर्दिष्ट करें। - समझ गया। पिछले व्याख्यानों के बाद यह बिल्कुल भी मुश्किल नहीं लगता। - ठीक है, तो यहां आपके लिए अपने कौशल में सुधार करने के लिए कुछ कार्य दिए गए हैं। ये System.out पर भी हैं। लेकिन बाद में और मुश्किलें होने वाली हैं। और आप हमें दिखा सकते हैं कि आप किस स्टील से बने हैं।
कार्य
1 एक प्रोग्राम लिखें जो प्रदर्शित करता है: «स्टेप बाय स्टेप और काम हो गया।»।
2 एक प्रोग्राम लिखें जो 7 बार प्रदर्शित करता है: «असंभव को करना एक तरह से मजेदार है।»।
3 एक प्रोग्राम लिखें जो प्रदर्शित करता है: «हमेशा कुछ उपयोगी सीखने की इच्छा।»।

4 ऋषि, चरों की दृश्यता।

- हाय, मेरा पसंदीदा छात्र। अब मैं आपको Variables की Visibility के बारे में बताता हूँ । - क्यों, अदृश्य चर भी होते हैं? - नहीं, वेरिएबल्स कोड के उन स्थानों पर दिखाई देते हैं जहां उस वेरिएबल को एक्सेस किया जा सकता है। कुछ वेरिएबल्स को प्रोग्राम में कहीं से भी एक्सेस किया जा सकता है, अन्य को केवल उनकी कक्षा के भीतर, और कुछ वेरिएबल्स को केवल एक विधि के भीतर एक्सेस किया जा सकता है। - उदाहरण के लिए, आप घोषित होने से पहले चर का उल्लेख नहीं कर सकते। - यह स्पष्ट है। - यहाँ कुछ उदाहरण दिए गए हैं: पुराना स्तर 02 - 111 एक विधि में घोषित चर मौजूद है / घोषणा की शुरुआत से विधि के अंत तक दिखाई देता है। 2 कोड ब्लॉक में घोषित वेरिएबल इस कोड ब्लॉक के अंत तक मौजूद रहता है। 3 चर - विधि तर्क - विधि के दायरे में कहीं भी मौजूद हैं। 4 क्लास/ऑब्जेक्ट वेरिएबल्स उनके ऑब्जेक्ट के पूरे जीवनकाल के दौरान मौजूद रहते हैं। विशेष पहुँच संशोधक सार्वजनिक और निजी अतिरिक्त रूप से उनकी दृश्यता को नियंत्रित करते हैं। प्रोग्राम रनटाइम पर 5 स्टेटिक क्लास वेरिएबल्स मौजूद हैं। एक्सेस संशोधक उनकी दृश्यता भी निर्धारित करते हैं। - मुझे तस्वीरें पसंद हैं, सब कुछ ठीक हो जाता है। - तुम्हारे लिए अच्छा है, अमीगो। हमेशा से जानता था कि तुम एक चतुर साथी हो। - मैं आपको एक्सेस संशोधक के बारे में भी बताऊंगा । इतना डरो मत, यह कोई रॉकेट साइंस नहीं है। ये सार्वजनिक और निजी शब्द हैं जो आप देखते हैं। - मुझे डर नहीं है, यहाँ बस ठंड है। - हां यकीनन। आप अन्य वर्गों से अपनी कक्षा में विधियों और चरों की पहुंच (दृश्यता) को नियंत्रित कर सकते हैं। प्रत्येक विधि या चर के लिए, आप केवल एक एक्सेस संशोधक निर्दिष्ट कर सकते हैं। 1 संशोधक सार्वजनिक संशोधक जनता के साथ फ़्लैग किए गए एक चर, विधि या वर्ग को प्रोग्राम में कहीं से भी एक्सेस किया जा सकता है। यह खुलेपन का उच्चतम स्तर है, बिना किसी प्रतिबंध के। 2 संशोधक निजी संशोधक निजी के साथ फ़्लैग किए गए एक चर या विधि को केवल उस वर्ग से पहुँचा जा सकता है जहाँ यह घोषित किया गया है। अन्य सभी वर्गों के लिए, ध्वजांकित विधि या चर अदृश्य हैं, जैसे कि वे मौजूद नहीं हैं। यह क्लोजनेस का उच्चतम स्तर है (केवल उसी वर्ग से दिखाई देता है)। 3 संशोधक डिफ़ॉल्ट यदि कोई संशोधक चर या विधि को फ़्लैग नहीं करता है, तो इसे संशोधक डिफ़ॉल्ट माना जाता है। उस संशोधक के साथ चर या विधियाँ (अर्थात, बिना किसी के) पैकेज के सभी वर्गों के लिए दृश्यमान हैं, जिनमें वे घोषित हैं। केवल उसी पैकेज में। इस संशोधक को कभी-कभी यह बताने के लिए पैकेज कहा जाता है कि पूरे पैकेज के लिए चर और विधियों तक पहुंच संभव है, जो कि उनकी कक्षा स्पष्टीकरण टैब से संबंधित है: पुराना स्तर 02 - 12

5 डिएगो, चरों का एक गुच्छा बनाने के लिए कार्य

- हे यार। अगर जरूरत पड़ी तो मैं आपके लिए अनुबंध की एक प्रति रखता हूं। वह डरपोक कपटी ऋशा आनंदित रूप से अनजान है। आपको मेरे अनुबंध में राशियों को देखना चाहिए था। हे हे। - शाबाश, डिएगो। मुझे लगता है कि आप मुझे वास्तविक उपयोगी चीजें सिखाते हैं। - ज़रूर, अमीगो। दर्द के बिना कुछ नहीं मिलता। लेकिन फिर भी कोई बिना लाभ के दर्द सहता है। - आइए बेहतर तरीके से पढ़ाई के लिए हाथ बढ़ाएं। अब मैं आपको दिखाऊंगा कि अलग-अलग तरीकों से वेरिएबल्स का एक गुच्छा कैसे बनाया जाता है: पुराना स्तर 02 - 13- वाह, डिएगो! तुम बहुत चालाक हो। - हे हे! धन्यवाद, अमीगो। - मुझे लगता है कि आप पहले ही मेरे कार्यों को याद कर चुके हैं। तो यहाँ उनमें से कुछ हैं। वो इंसान, एलियन हमारी रोबो-लाइफ के बारे में कुछ नहीं जानते। मेरे अलावा कौन तुम्हें यह सिखाएगा?
कार्य
1 एक प्रोग्राम लिखें जो 3 बार प्रदर्शित करता है: «बहुत से लोग केवल इसलिए जीवित हैं क्योंकि उन्हें गोली मारना अवैध है।»।
2 एक प्रोग्राम लिखें जो प्रदर्शित करता है: «यदि मुझे आपकी राय चाहिए, तो मैं आपसे आवश्यक प्रपत्र भरने के लिए कहूँगा।»।
3 एक प्रोग्राम लिखें जो 20 बार प्रदर्शित करता है: «मैंने जो कुछ भी कहा, उसमें से अधिकांश मैंने कभी नहीं कहा।»।

6 एली, संदर्भ से गुजरना। संदर्भ चर

- हे, अमीगो, मैं फिर से बोल रहा हूं, एली। क्षमा करें, मैं हमेशा यह कहता हूं, लेकिन 31वीं शताब्दी में पृथ्वी पर चीजें इसी तरह की जाती हैं। मैं आपको संदर्भ चर की विशेषताओं और कार्यों (विधियों) के संदर्भात्मक तर्कों को पारित करने के तरीके के बारे में समझाऊंगा। - मैं तैयार हूं। - ठीक है, संदर्भ चर आदिम को छोड़कर सभी प्रकार के चर हैं। इन चरों में केवल वस्तु का पता (ऑब्जेक्ट संदर्भ) होता है। - आदिम प्रकार के चर एक मान और प्रकार को संग्रहीत करते हैं, और वर्ग चर एक ही वर्ग की वस्तुओं के संदर्भों को संग्रहीत करते हैं, अच्छी तरह से, या अशक्त। क्या मैं सही हूँ - बिल्कुल। - तो, ​​एक संदर्भ क्या है? - ऑब्जेक्ट और उसका संदर्भ जुड़ा हुआ है, मान लीजिए, जैसे एक आदमी और उसका फोन नंबर। एक फोन नंबर एक आदमी नहीं है, लेकिन इसका इस्तेमाल किसी आदमी को कॉल करने, उससे कुछ पूछने, मार्गदर्शन करने या उसे आदेश देने के लिए किया जा सकता है। किसी वस्तु के साथ बातचीत करने के लिए एक संदर्भ का भी उपयोग किया जाता है। सभी वस्तुएं एक दूसरे के साथ संदर्भों के माध्यम से बातचीत करती हैं। - ऐसा लगता है जैसे लोग फोन पर एक-दूसरे से संवाद करते हैं? - यह सही है। जब आप एक प्रिमिटिव ऑब्जेक्ट असाइन करते हैं, तो उसका मान कॉपी किया जाता है (डुप्लिकेट किया जाता है)। जब आप एक संदर्भ चर निर्दिष्ट करते हैं, तो केवल ऑब्जेक्ट पता (फ़ोन नंबर) कॉपी किया जाता है, न कि स्वयं ऑब्जेक्ट। - ठीक है, मैं समझ गया। - एक संदर्भ एक और लाभ प्रदान करता है: आप किसी भी विधि के लिए एक वस्तु संदर्भ पारित कर सकते हैं, और यह विधि अपने तरीकों को कॉल करके और वस्तु के भीतर डेटा तक पहुंच बनाकर अपने संदर्भ का उपयोग करके हमारी वस्तु को संशोधित (बदल) करने में सक्षम होगी। - वेरिएबल्स ए और बीपुराना स्तर 02 - 14 के मान स्वैप विधि के अंदर आपस में जुड़े हुए हैं । जब आप स्वैप विधि को कॉल करते हैं, तो चर a और b मानों की प्रतियां प्राप्त करते हैं m & nइसलिए, जब आप a और b के मानों को बदलते हैं तो चर m और n के मान समान रहते हैं । यह दाहिने कॉलम के कोड में स्पष्ट रूप से दिखाई देता है। - सच कहूं तो मुझे इसमें से कुछ भी नहीं मिला। क्या मेरे पास कुछ और उदाहरण हो सकते हैं? - संदर्भ प्रकार के मामले में, आप ऐसा कर सकते हैं: पुराना स्तर 02 - 15- चर a और b को क्रमशः एम्मा और ऐलिस के संदर्भ दिए गए हैं, a और b मान वस्तुओं एम्मा और ऐलिस के भीतर बदलते हैं। - तो कक्षाओं को अन्य वर्गों में भी घोषित करना संभव है? बहुत खूब! - बाकी के लिए, यह स्पष्ट नहीं है। - सभी एक साथ नहीं।

7 एली, फंक्शन कॉल, रिटर्न वैल्यू

- ठीक है, तो चलो घूमते हैं। हम बात करेंगे कि मेथड कॉल कैसे काम करता है, और फिर आप पिछले लेक्चर पर फिर से नज़र डालने की कोशिश करें, ठीक है? - सौदा! - ठीक है, तो मैं आपको फ़ंक्शन/विधि कॉल और लौटाए गए मानों के बारे में बताऊंगा। - कमांड्स को फंक्शन्स में समूहीकृत किया जाता है, ताकि आप उन्हें एक जटिल कमांड के रूप में एक ही ब्लॉक में चला सकें। ऐसा करने के लिए, आपको फ़ंक्शन (विधि) का नाम लिखने की आवश्यकता है और फिर कोष्ठक में नाम के बाद मान और पैरामीटर निर्दिष्ट करें। पुराना स्तर 02 - 16- उपरोक्त उदाहरण में, हमने पास की गई स्ट्रिंग को 4 बार प्रदर्शित करते हुए एक फंक्शन लिखा। फिर हमने लाइन 6 में फ़ंक्शन प्रिंट4 को कॉल किया। - जब लाइन 6 के निष्पादन की बात आती है, तो प्रोग्राम 9 लाइन पर कूद जाएगा, और s वेरिएबल को एक मान दिया जाएगा "मुझे इसे स्थानांतरित करना पसंद है, इसे स्थानांतरित करें।" - फिर 11-14 पंक्तियों को क्रियान्वित किया जाएगा, और अंत में, समारोह पूरा हो जाएगा और कार्यक्रम 7 पंक्ति के साथ जारी रहेगा। - पकड़ लिया। - आप फ़ंक्शन को न केवल तर्क (पैरामीटर) पास कर सकते हैं, बल्कि फ़ंक्शन के संचालन के परिणाम (मान) भी वापस कर सकते हैं। यह कीवर्ड रिटर्न का उपयोग करके किया जाता है। यहाँ यह कैसा दिखता है: पुराना स्तर 02 - 17- मुझे लगता है कि मैं इसे पकड़ रहा हूँ। यह बाईं और दाईं ओर समान कोड है। बाईं ओर, इसे केवल एक अलग फ़ंक्शन के रूप में प्रस्तुत किया गया है। - फ़ंक्शन एक मान की गणना करता है और इसे उन लोगों को पास करता है जिन्होंने इसे रिटर्न कमांड का उपयोग करके कॉल किया था। कम से कम मुझे तो ऐसा ही लगता है। - मूल रूप से, यह सच है। - और शून्य प्रकार क्या है? - कुछ कार्य बस कुछ करते हैं, लेकिन गणना नहीं करते हैं और किसी भी मान को वापस नहीं करते हैं, जैसे कि हमारी विधि main()। उन कार्यों के लिए इसे एक विशेष परिणाम प्रकार शून्य (एक खाली प्रकार) बनाया गया था। - यदि कोई फ़ंक्शन कुछ भी वापस नहीं करता है, तो हम कुछ भी क्यों नहीं निर्दिष्ट कर सकते हैं? - ज़रा सोचिए कि प्रत्येक चर को कैसे घोषित किया जाता है: प्रकार और नाम। प्रकार, नाम और कोष्ठकों के साथ एक फ़ंक्शन घोषित किया जाता है। फ़ंक्शन नाम कोष्ठक के बाद एक फ़ंक्शन कॉल है! - तो कार्यों को दो श्रेणियों में विभाजित करने की तुलना में "खाली प्रकार" के साथ आना आसान था, जो मूल्य वापस कर रहे थे और मूल्य वापस नहीं कर रहे थे? - बिल्कुल! तुम एक त्वरित विचारक हो, मेरे लड़के। - और मैं खाली प्रकार कैसे वापस कर सकता हूं? - तुम नहीं कर सकते। यहां बताया गया है कि यह कैसे काम करता है: जब जेवीएम रिटर्न निष्पादित करता हैआदेश, यह वापसी शब्द के दाईं ओर अभिव्यक्ति के मूल्य की गणना करता है, उस मान को एक विशेष स्मृति क्षेत्र में संग्रहीत करता है और तुरंत फ़ंक्शन से बाहर निकलता हैयह उस स्थान पर फ़ंक्शन कॉल के परिणाम के रूप में सहेजे गए मान का उपयोग करता है जहां फ़ंक्शन को कॉल किया गया था। आप इसे उपरोक्त उदाहरण में देख सकते हैं। - क्या आपका मतलब उस जगह से है जहां int m = min(a,b) m = m2 में बदल गया है ? - हाँ। फ़ंक्शन कॉल के बाद सब कुछ काम करना जारी रखता है जैसे कि फ़ंक्शन के बजाय उसका परिणाम उसी स्थान पर लिखा गया हो। उस वाक्य को एक बार फिर से पढ़ें और पिछले उदाहरण के कोड को देखें। - यह आसान लगता है, लेकिन वास्तव में यह मुश्किल है। मुझे थोड़ा सा ही मिला है, बस इतना ही। - कोई बात नहीं।पहली कोशिश में आप केवल वही समझ सकते हैं जो आप पहले से जानते हैं। जितना अधिक आप अपने लिए एक नए क्षेत्र में पहुंचे, उतना ही यह अस्पष्ट है। और नतीजा और भी शानदार होगा। जैसे-जैसे समय बीतता है, सब कुछ स्पष्ट होता जाता है। - अच्छा, अगर ऐसा है, तो चलिए जारी रखते हैं।

8 डिएगो

- अरे, अमीगो। यहां आपके लिए कुछ कार्य हैं। अब आप System.out से अधिक कुछ करने में सक्षम हैं। अपनी पूरी कोशिश करो! मुझे तुम पर विश्वास है!
कार्य
1 कम से कम दो नंबर
एक ऐसा फ़ंक्शन लिखें जो कम से कम दो नंबर लौटाए।
2 अधिकतम दो संख्याएँ
एक फ़ंक्शन लिखें जो अधिकतम दो संख्याएँ लौटाता है।
3 न्यूनतम तीन संख्याएँ
एक ऐसा फ़ंक्शन लिखें जो न्यूनतम तीन संख्याएँ लौटाता हो।
4 कम से कम चार नंबर
एक ऐसा फ़ंक्शन लिखें जो कम से कम चार नंबर लौटाए।
फ़ंक्शन मिन (ए, बी, सी, डी) को फ़ंक्शन मिन (ए, बी) का उपयोग (कॉल) करना है
5 स्ट्रिंग डुप्लिकेशन
एक ऐसा फ़ंक्शन लिखें जो पास की गई स्ट्रिंग को तीन बार प्रदर्शित करता है। प्रत्येक स्ट्रिंग एक नई लाइन पर होनी चाहिए।
6 पाठ प्रदर्शन
एक ऐसा फ़ंक्शन लिखें जो पारित स्ट्रिंग (शब्द) को एक ही पंक्ति में तीन बार प्रदर्शित करता है।
शब्दों को एक स्थान से अलग किया जाना चाहिए और एक में विलय नहीं करना चाहिए।

9 डिएगो, पूर्ण वर्ग का नाम

पुराना स्तर 02 - 18- हे, अमीगो, मैं आपको पूरी कक्षा के नामों के बारे में बताना चाहता हूँ। - आप पहले से ही जानते हैं कि कक्षाएं संकुल में हैं। तो, एक पूर्ण वर्ग का नाम एक ऐसा नाम है जो बिंदुओं से अलग किए गए सभी पैकेजों और एक वर्ग के नाम को कवर करता है। उदाहरण: पुराना स्तर 02 - 19 - अपने कोड में क्लास का उपयोग करने के लिए आपको उसका पूरा नाम निर्दिष्ट करना होगा। हालाँकि, आप एक संक्षिप्त नाम का उपयोग कर सकते हैं - केवल एक वर्ग का नाम। ऐसा करने के लिए आपको कक्षा घोषित करने से पहले इस वर्ग को "आयात" करने की आवश्यकता है, इसके नाम को आयात शब्द जोड़कर निर्दिष्ट करें। Java.lang (स्ट्रिंग, इंटीजर,...) पैकेज की कक्षाएं डिफ़ॉल्ट रूप से आयात की जाती हैं। आपको उन्हें निर्दिष्ट करने की आवश्यकता नहीं है। उदाहरण : पुराना स्तर 02 - 20- छोटे नामों के प्रयोग का उदाहरण : पुराना स्तर 02 - 21- मुझे समझ में आ गया। - अच्छा।

10 प्रोफेसर, कक्षाओं और वस्तुओं के बारे में व्याख्यान

पुराना स्तर 02 - 22- अरे, अमीगो। आशा है कि एली और ऋशा ने आज आपको जो कुछ बताया है, वह सब आपको समझ में आ गया होगा। बस सुरक्षित रहने के लिए, जैसा कि मैंने वादा किया था, आगे की सामग्री के लिंक यहां दिए गए हैं: 1 मेरे नोट्स 2 जावा में सोच रहे हैं। वह अद्भुत पुस्तक जिसके बारे में मैं आपको पहले ही बता चुका हूँ। आप इसे पढ़ेंगे तो बहुत अच्छा होगा। - मुझे आशा है कि आप इसे देखने के लिए समय निकालेंगे। - अहम। यकीनन मैं करूंगा!

11 जूलियो

- अरे, अमीगो! आशा है कि आप कुछ कठिन और थकाऊ आराम के लिए हैं?

टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION