Android भाग 2 के लिए C # सीखें: कक्षाएं और लूप

लेखक: John Stephens
निर्माण की तारीख: 24 जनवरी 2021
डेट अपडेट करें: 1 जुलाई 2024
Anonim
लूप्स और एरेज़ को समझना | एकता सी # मूल बातें भाग 2 | एकता ट्यूटोरियल
वीडियो: लूप्स और एरेज़ को समझना | एकता सी # मूल बातें भाग 2 | एकता ट्यूटोरियल

विषय


C # सीखने पर इस Android ट्यूटोरियल श्रृंखला के एक भाग में, हमने C # प्रोग्रामिंग की संपूर्ण मूल बातें देखीं। हमने विधियां (कोड के समूह जो विशिष्ट कार्य करते हैं), कुछ बुनियादी वाक्यविन्यास (जैसे अर्ध कॉलोनों की आवश्यकता), चर (कंटेनर जो डेटा संग्रहीत करते हैं), और प्रवाह नियंत्रण के लिए "यदि कथन" मानों पर निर्भर है (शाखा कोड) चर)। हमने यह भी देखा कि कैसे तरीकों के बीच बहस के रूप में चर जैसे चर पास करें।

आपको वापस जाना चाहिए और इस पर ध्यान देना चाहिए कि क्या आपने इसे पहले ही नहीं पढ़ा है।

इस बिंदु पर, आपको कुछ मूल कंसोल एप्लिकेशन बनाने में सक्षम होना चाहिए, जैसे क्विज़, डेटा स्टोर करने वाले एप्लिकेशन या कैलकुलेटर।

भाग दो में, हम कुछ और मूल बातें शामिल करने जा रहे हैं, जिसमें कुछ और मूल बातें शामिल हैं - जैसे कि लूप - और यह बनाना और कक्षाओं के साथ बातचीत करना। इसका मतलब है कि हम एंड्रॉइड डेवलपमेंट पर एक स्टैब लेना शुरू कर सकते हैं और देख सकते हैं कि उस गैप को कैसे पाटा जाए। पढ़ना जारी रखें यदि आप वास्तव में C # सीखना चाहते हैं!


कक्षाओं और वस्तु उन्मुख प्रोग्रामिंग को समझना

संक्षेप में भाग एक में, हमने ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की मूल बातें बताई, जो "वस्तुओं" का वर्णन करने के लिए "कक्षाओं" का उपयोग करते हुए भाषाओं के चारों ओर घूमती है। एक ऑब्जेक्ट डेटा का एक टुकड़ा है, जो कई चीजों का प्रतिनिधित्व कर सकता है। यह वसंत की तरह खेल की दुनिया में एक शाब्दिक वस्तु हो सकती है, या यह कुछ अधिक सार हो सकता है, प्रबंधक की तरह जो खिलाड़ी के स्कोर को संभालता है।

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


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

अंतिम पाठ में हमने जो कार्यक्रम बनाया, वह एक वर्ग का भी उदाहरण है। यहाँ जिस "ऑब्जेक्ट" का हम वर्णन कर रहे हैं वह कुछ प्रकार का पासवर्ड नियंत्रण प्रणाली है। इसके पास जो संपत्ति है वह स्ट्रिंग यूजरनेम है और इसका व्यवहार न्यूमैथोड (उपयोगकर्ता के नाम की जाँच करना और उन्हें अभिवादन करना) है।

अगर ऐसा हैफिर भी थोड़ा भ्रमित होना, हमारे सिर के चारों ओर जाने का एकमात्र तरीका एक नया वर्ग या दो स्वयं बनाना है!

एक नया वर्ग बनाना

यदि आप C # सीखना चाहते हैं, तो आपको यह जानना होगा कि नई कक्षाएं कैसे बनाई जाती हैं। सौभाग्य से, यह बहुत आसान है। बस प्रोजेक्ट मेनू आइटम पर क्लिक करें और फिर "+ क्लास जोड़ें" चुनें।

"C #" चुनें और इसे "खरगोश" कहें, हम वैचारिक खरगोश बनाने के लिए इस वर्ग का उपयोग करने जा रहे हैं। आप देखेंगे कि एक पल में मेरा क्या मतलब है।

यदि आप दाईं ओर अपने सॉल्यूशन एक्सप्लोरर में जांचते हैं, तो आप देखेंगे कि एक नई फ़ाइल जिसे Rabbit.cs कहा गया है, प्रोग्राम्स .cs के ठीक नीचे बनाई गई है। अच्छी तरह से किया - यह जानने के लिए सबसे महत्वपूर्ण चीजों में से एक है कि क्या आप Android के लिए C # सीखना चाहते हैं!

नई Rabbit.cs फ़ाइल में पहले जैसा ही कुछ "बॉयलरप्लेट" कोड है। यह अभी भी उसी नामस्थान से संबंधित है, और इसमें फ़ाइल के समान नाम वाला एक वर्ग है।

नामस्थान ConsoleApp2 {वर्ग खरगोश {}}

अब हम अपने खरगोश को कुछ ऐसे गुण देने जा रहे हैं जिन्हें हम "कंस्ट्रक्टर" कहते हैं।

एक निर्माता एक वर्ग में एक विधि है जो ऑब्जेक्ट को इनिशियलाइज़ करता है, जब हम पहली बार इसे बनाते हैं तो हमें इसके गुणों को परिभाषित करने की अनुमति देते हैं। इस मामले में, यहाँ हम क्या कहने जा रहे हैं:

namespace ConsoleApp2 {class Rabbit {public string RabbitName; सार्वजनिक स्ट्रिंग RabCColor; सार्वजनिक int RabbitAge; सार्वजनिक int RabbitWeight; सार्वजनिक खरगोश (स्ट्रिंग नाम, स्ट्रिंग रंग, अंतर आयु, अंतर वजन) {खरगोश नाम = नाम; RabbitColor = color; RabbitAge = आयु; खरगोश का वजन = वजन; }}}

यह हमें एक अलग वर्ग से एक नया खरगोश बनाने की अनुमति देता है, और इसके गुणों को परिभाषित करता है जैसे हम करते हैं:

रैबिट रैबिट 1 = नया रैबिट ("जेफ", "ब्राउन", 1, 1);

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

जब आप अपना खरगोश लिखेंगे, तो आपको सही तर्क देने के लिए प्रेरित किया जाएगा। इस तरह, आपकी कक्षा लगभग कोड का हिस्सा बन गई है।

मानो या न मानो, इस कोड ने एक खरगोश बनाया है! आप अपना खरगोश नहीं देख सकते क्योंकि हमारे पास कोई ग्राफिक्स नहीं है, लेकिन यह वहाँ है।

और इसे साबित करने के लिए, आप अब इस लाइन का उपयोग कर सकते हैं:

Console.WriteLine (Rabbit1.RabbitName);

यह तब आपको उस खरगोश का नाम बताएगा जिसे आपने अभी बनाया था!

हम वैसे ही अपने खरगोश का वजन बढ़ा सकते हैं, जैसे:

Rabbit1.RabbitWeight ++; Console.WriteLine (Rabbit1.RabbitName + "वजन" + Rabbit1.RabbitWeight + "kg");

यहां ध्यान दें कि किसी चीज़ के अंत में "++" जोड़ने से एक के बाद एक इसकी वैल्यू बढ़ेगी (आप "RabbitWeight = RabbitWeight + 1" भी लिख सकते हैं)।

क्योंकि हमारी कक्षा जितने चाहें उतने खरगोश बना सकती है, हम बहुत सारे खरगोश बना सकते हैं, प्रत्येक अपने गुणों के साथ।

व्यवहार जोड़ना

फिर हम अपने खरगोश को किसी प्रकार का व्यवहार देने के लिए भी चुन सकते हैं। इस मामले में, उन्हें खाने दें।

ऐसा करने के लिए, हम "ईट" नामक एक सार्वजनिक विधि बनाएंगे, और यह खाने की आवाज़ करेगा, जबकि खरगोश के वजन में वृद्धि भी करता है:

public void खाओ () {Console.WriteLine (RabbitName + ": Nibble nibble!"); RabbitWeight ++; }

याद रखें, "सार्वजनिक" का अर्थ है कक्षा के बाहर से पहुंच योग्य, और "शून्य" का अर्थ है किसी भी डेटा को वापस नहीं करना।

फिर, Program.cs के अंदर से, हम इस विधि को कॉल करने में सक्षम होंगे और इससे हमारी पसंद का खरगोश खाएगा और बड़ा हो जाएगा:

Console.WriteLine (Rabbit1.RabbitName + "वजन" + Rabbit1.RabbitWeight + "kg"); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit1.Eat (); Console.WriteLine (Rabbit1.RabbitName + "वजन" + Rabbit1.RabbitWeight + "kg");

यह जेफ को तीन बार खाने का कारण बनेगा, तब हम इसे सुनेंगे और देख पाएंगे कि वह बड़ा हो गया है! अगर हम दृश्य में एक और खरगोश होते, तो वे भी खा सकते थे!

Console.WriteLine (Rabbit1.RabbitName + "वजन" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "वजन" + Rabbit2.RabbitWeight + "kg"); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit2.Eat (); Rabbit2.Eat (); Rabbit1.Eat (); Console.WriteLine (Rabbit1.RabbitName + "वजन" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "वजन" + Rabbit2.RabbitWeight + "kg");

खरगोश की तरह

यह बहुत सी वस्तुओं को संभालने के लिए एक विशेष रूप से सुंदर तरीका नहीं है, क्योंकि हमें प्रत्येक खरगोश के लिए मैन्युअल रूप से कमांड लिखने की जरूरत है और जब तक हम चाहें तब तक गतिशील रूप से खरगोशों की संख्या में वृद्धि नहीं कर सकते हैं। हम केवल C # सीखना नहीं चाहते हैं - हम सीखना चाहते हैं कि कैसे स्वच्छ C # कोड लिखें!

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

सूची RabbitList = नई सूची(); RabbitList.Add (नया खरगोश ("जेफ", "भूरा", 1, 1)); RabbitList.Add (नया खरगोश ("सैम", "सफेद", 1, 2));

यह पहले की तरह नया खरगोश बनाता है, लेकिन साथ ही साथ खरगोश को सूची में जोड़ता है। समान रूप से, हम यह कह सकते हैं:

रैबिट रैबिट 3 = नया रैबिट ("जॉनी", "ऑरेंज", 1, 1); RabbitList.Add (Rabbit3);

किसी भी तरह से, एक ऑब्जेक्ट बनाया गया है और सूची में जोड़ा गया है।

हम अपने खरगोशों की सूची से इस तरह से आसानी से और सुरुचिपूर्ण ढंग से जानकारी वापस कर सकते हैं:

foreach (RabbitList में var Rabbit) {Console.WriteLine (Rabbit.RabbitName + "वज़न" + Rabbit.RabbitWeight + "kg"); }

जैसा कि आप पता लगाने में सक्षम हो सकते हैं, "foreach" का अर्थ है कि आप सूची में प्रत्येक आइटम के लिए एक बार एक कदम दोहराते हैं। आप इस तरह से अपनी सूची से जानकारी भी प्राप्त कर सकते हैं:

RabbitList.Eat ();

यहां "1" सूचकांक है, जिसका अर्थ है कि आप स्थिति एक पर संग्रहीत जानकारी का उल्लेख कर रहे हैं। जैसा कि होता है, वह वास्तव में है दूसरा आपने हालांकि खरगोश जोड़ा: क्योंकि प्रोग्रामिंग में सूची हमेशा 0 से शुरू होती है।

फाइबोनैचि

यदि आपने अभी तक अनुमान नहीं लगाया है, तो हम अब फाइबोनैचि अनुक्रम बनाने के लिए इन सभी सूचनाओं का उपयोग करने जा रहे हैं। आखिरकार, यदि आप Android के लिए C # सीख रहे हैं, तो आपको वास्तव में उस सिद्धांत के साथ कुछ दिलचस्प करने में सक्षम होना चाहिए!

फाइबोनैचि अनुक्रम में, खरगोशों को एक कमरे में बंद कर दिया जाता है और प्रजनन के लिए छोड़ दिया जाता है। वे एक महीने के बाद पुन: पेश कर सकते हैं, जिस बिंदु पर वे यौन रूप से परिपक्व होते हैं (मैं पुष्टि नहीं कर सकता कि यह सही है जीवविज्ञान जीव)। यदि प्रत्येक खरगोश दंपति तब से प्रति माह एक बार उत्पादन कर सकता है, तो दो संतान पैदा कर सकता है, यहाँ अनुक्रम कैसा दिखता है:

1,1,2,3,5,8,13,21,34

जादुई रूप से, अनुक्रम में प्रत्येक संख्या पिछले दो संख्याओं का मान एक साथ जोड़ा गया है। विज्ञान के अनुसार, यह एक बड़ी बात है।

अच्छी बात यह है कि हम इसे दोहरा सकते हैं।

सबसे पहले, हमें एक नई अवधारणा शुरू करने की आवश्यकता है: लूप। यह बस एक ही कोड को बार-बार दोहराता है जब तक कि कोई शर्त पूरी नहीं हो जाती। "फॉर" लूप हमें एक वैरिएबल बनाकर, उन शर्तों को सेट करने देता है, जिन्हें हम पूरा करना चाहते हैं और फिर उस पर काम करना - सभी कोष्ठक के अंदर परिभाषित किया गया है:

के लिए (इंट महीने = 0; महीने <100; महीने ++) {// कुछ करो}

इसलिए हम एक पूर्णांक बना रहे हैं जिसे महीने कहते हैं, और जब तक यह 100 के बराबर नहीं हो जाता है तब तक लूपिंग होता है। फिर हम महीनों की संख्या को एक से बढ़ा देते हैं।

देखना चाहते हैं कि यह फिबोनाची अनुक्रम कैसे बन सकता है? देखो:

नामस्थान ConsoleApp2 {class program {static void Main (string args) {सूची RabbitList = नई सूची(); RabbitList.Add (नया खरगोश ("जेफ", "भूरा", 0, 1)); RabbitList.Add (नया खरगोश ("सैम", "सफेद", 0, 1)); के लिए (इंट महीने = 0; महीने <10; महीने ++) {इंट फर्स्ट आरबिट = 0; int timesToReproduce = 0; foreach (खरगोश खरगोश में var खरगोश) {Console.Write ("R"); if (Rabbit.RabbitAge> 0) {अगर (firstRabbit == 0) {firstRabbit = 1; } और {firstRabbit = 0; timesToReproduce ++; }} Rabbit.RabbitAge ++; } (int i = 0; मैं <timesToReproduce; i ++) {RabbitList.Add (नया खरगोश ("NewBabyRabbit", "brown", 0, 1)); RabbitList.Add (नया खरगोश ("NewBabyRabbit", "Brown", 0, 1)); Console.Write ( "आर"); Console.Write ( "आर"); } Console.WriteLine ("---" "RabbitList.Count / 2 +" खरगोशों के जोड़े हैं!); Console.WriteLine ( ""); } Console.WriteLine ("सभी किया!"); Console.ReadKey (); }}}

ठीक है, कि मैंने सोचा था कि कठिन था!

मैं इस सब से गुजरने वाला नहीं हूँ, लेकिन जो आपने पहले से सीखा है, उसका उपयोग करके, आपको इसे रिवर्स करने में सक्षम होना चाहिए।

ऐसा करने के निश्चित रूप से अधिक सुरुचिपूर्ण तरीके हैं - मैं कोई गणितज्ञ नहीं हूं। हालाँकि, मुझे लगता है कि यह एक काफी मजेदार व्यायाम है, और एक बार जब आप इसे कर सकते हैं, तो आप बड़े समय के लिए तैयार हैं।

मैं किसी भी अन्य दृष्टिकोण को देखने के लिए प्यार नहीं करता, वैसे!

हम यहाँ से कहाँ जायेंगे? Android के लिए C # कैसे सीखें

अपने बेल्ट के तहत उस सभी ज्ञान के साथ, आप बड़ी चीजों पर शुरू करने के लिए तैयार हैं। विशेष रूप से, आप Xamarin या यूनिटी में C # के साथ एंड्रॉइड प्रोग्रामिंग पर एक स्टैब लेने के लिए तैयार हैं।

यह अलग है क्योंकि आप Google, Microsoft और यूनिटी द्वारा प्रदान की जाने वाली कक्षाओं का उपयोग कर रहे हैं। जब आप "RigidBody2D.velocity" जैसा कुछ लिखते हैं तो आप जो कर रहे हैं वह एक वर्ग से एक संपत्ति तक पहुंच रहा है बुलाया RigidBody2D। यह केवल एक ही काम करता है, एकमात्र अंतर यह है कि आप RigidBody2D नहीं देख सकते क्योंकि आपने इसे स्वयं नहीं बनाया है।

अपनी बेल्ट के तहत इस C # के साथ, आपको इन विकल्पों में से किसी में भी कूदने के लिए तैयार होना चाहिए और जब यह समझ में आ जाए कि यह क्या हो रहा है तो एक बड़ा सिर शुरू करें:

  • Xamarin के साथ एक एंड्रॉइड ऐप कैसे बनाएं
  • एकता के साथ 7 मिनट में अपना पहला पहला एंड्रॉइड गेम बनाएं

आगामी पाठ में, हम यह भी देखेंगे कि आप यू-टर्न कैसे ले सकते हैं और इसके बजाय विंडोज ऐप्स बनाने के लिए इसका उपयोग कर सकते हैं!

Google ने YouTube के आधिकारिक ब्लॉग पर आज घोषणा की कि उसकी YouTube टीवी स्ट्रीमिंग सेवा में अब अधिक चैनल शामिल हैं। दुर्भाग्य से ग्राहकों के लिए, YouTube टीवी को अभी तक एक और मूल्य वृद्धि प्राप्त है।...

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

आकर्षक रूप से