تعلم C # لنظام Android الجزء 2: الفصول والحلقات

مؤلف: John Stephens
تاريخ الخلق: 24 كانون الثاني 2021
تاريخ التحديث: 1 تموز 2024
Anonim
Kotlin & Android 12 Tutorial | Learn How to Build an Android App 📱 9+ h FREE Development Masterclass
فيديو: Kotlin & Android 12 Tutorial | Learn How to Build an Android App 📱 9+ h FREE Development Masterclass

المحتوى


في الجزء الأول من سلسلة دروس Android هذه حول تعلم C # ، نظرنا في الأساسيات المطلقة لبرمجة C #. قمنا بتغطية الطرق (مجموعات من التعليمات البرمجية التي تؤدي مهام محددة) ، وبعض بناء الجملة الأساسي (مثل الحاجة إلى علامات شبه منقوطة) ، والمتغيرات (الحاويات التي تخزن البيانات) ، و "إذا عبارات" للتحكم في التدفق (رمز التفرع الذي يعتمد على القيم المتغيرات). لقد رأينا أيضًا كيفية تمرير المتغيرات مثل السلاسل كوسائط بين الطرق.

يجب عليك الرجوع وإلقاء نظرة على ذلك إذا لم تكن قد قرأته بالفعل.

في هذه المرحلة ، يجب أن تكون قادرًا على إنشاء بعض تطبيقات وحدة التحكم الأساسية ، مثل الاختبارات أو التطبيقات التي تخزن البيانات أو الآلات الحاسبة.

في الجزء الثاني ، سنصبح أكثر طموحًا ، حيث نغطي بعض الأساسيات - مثل الحلقات - واستكشف كيفية إنشاء الفصول الدراسية والتفاعل معها. هذا يعني أننا سنكون قادرين على البدء في طعن في تطوير Android ومعرفة كيفية سد هذه الفجوة. مواصلة القراءة إذا كنت تريد أن تتعلم حقا C #!


فهم الطبقات والبرمجة وجوه المنحى

باختصار في الجزء الأول ، أوضحنا أساسيات البرمجة الموجهة للكائنات ، والتي تدور حول اللغات باستخدام "الفئات" لوصف "الكائنات". الكائن هو جزء من البيانات ، والذي يمكن أن يمثل أشياء كثيرة. قد يكون كائنًا حرفيًا في عالم اللعبة مثل الربيع ، أو قد يكون شيئًا أكثر تجريدًا ، مثل المدير الذي يتعامل مع درجة اللاعب.

يمكن لفئة واحدة إنشاء كائنات متعددة. لذلك قد تكتب صفًا "عدوًا" واحدًا ، ولكن يمكنك توليد مستوى كامل من الأشرار. هذه هي واحدة من الفوائد الكبيرة لاستخدام البرمجة وجوه المنحى. خلاف ذلك ، فإن الطريقة الوحيدة للتعامل مع سلوك العديد من الأعداء هي استخدام الكثير من الأساليب الفردية ، كل منها يحتوي على تعليمات لكيفية تصرف الرجل السيئ في ظروف مختلفة.

إذا كان هذا لا يزال صعباً بعض الشيء للحصول على رأسك ، كل ما تحتاج إلى معرفته حقًا هو أن الكائنات لها خصائص وسلوكيات. هذا هو تماما مثل الأشياء الحقيقية. على سبيل المثال ، يحتوي الأرنب على خصائص مثل الحجم واللون والاسم ؛ ولديه سلوكيات ، مثل القفز والجلوس والأكل. في الأساس ، خصائص المتغيرات والسلوكيات هي الأساليب.


البرنامج الذي قمنا ببنائه في الدرس الأخير هو مثال على الفصل أيضًا. "الكائن" الذي نصفه هنا هو نوع من نظام التحكم في كلمة المرور. الخاصية التي تحتوي عليها هي سلسلة اسم المستخدم ، والسلوك لديها هو NewMethod (التحقق من اسم المستخدم وتحية لهم).

اذا كان هذاما يزال مربكة بعض الشيء ، الطريقة الوحيدة للحصول على رؤوسنا هي إنشاء فئة جديدة أو اثنين من أنفسنا!

خلق فئة جديدة

إذا كنت ستتعلم لغة C # ، فأنت بحاجة إلى معرفة كيفية إنشاء فصول جديدة. لحسن الحظ ، هذا سهل للغاية. فقط انقر فوق عنصر قائمة المشروع ثم حدد "+ إضافة فئة".

اختر "C #" واسميها "Rabbit". سنستخدم هذه الفئة لإنشاء أرانب مفاهيمية. سترى ما أعنيه في لحظة.

إذا قمت بتسجيل الدخول في Solution Explorer على اليمين ، فسترى أنه قد تم إنشاء ملف جديد يسمى Rabbit.cs أسفل Program.cs. حسنًا - إنه أحد أهم الأشياء التي يجب عليك معرفتها إذا كنت تريد تعلم C # لنظام Android!

يحتوي ملف Rabbit.cs الجديد على بعض من نفس كود "boilerplate" كما كان من قبل. لا يزال ينتمي إلى نفس مساحة الاسم ، ولديه فئة تحمل نفس اسم الملف.

مساحة الاسم ConsoleApp2 {class Rabbit {}}

الآن سنمنح أرنبنا بعض الخصائص مع ما نسميه "مُنشئ".

المُنشئ عبارة عن طريقة في الفصل تقوم بتهيئة الكائن ، مما يسمح لنا بتحديد خصائصه عند إنشائه لأول مرة. في هذه الحالة ، إليك ما سنقوله:

مساحة الاسم ConsoleApp2 {class Rabbit {سلسلة عامة RabbitName؛ سلسلة RabbitColor العامة. الجمهور العام RabbitAge. كثافة العمليات العامة Rabbit public (اسم السلسلة ، لون السلسلة ، int int ، الوزن int) {RabbitName = name؛ RabbitColor = اللون ؛ RabbitAge = العمر ؛ وزن الأرنب = الوزن ؛ }}}

يسمح لنا هذا بإنشاء أرنب جديد من فئة مختلفة ، وتحديد خصائصه كما نفعل:

Rabbit Rabbit1 = أرنب جديد ("Jeff" ، "brown" ، 1 ، 1) ؛

الآن أدرك أنه عند استعادة الوزن بأثر رجعي ، ربما كان من المحتمل أن يكون عائمًا أو مزدوجًا للسماح بالكسور العشرية ، لكنك حصلت على هذه الفكرة. سنقوم بجولة أرنبنا إلى أقرب عدد صحيح.

ستظهر أثناء قيامك بكتابة الأرنب الخاص بك ، سيُطلب منك تمرير الوسيطات الصحيحة. بهذه الطريقة ، أصبح فصلك جزءًا من الكود تقريبًا.

صدق أو لا تصدق ، هذا الكود خلق أرنب! لا يمكنك رؤية الأرنب لأننا لا نملك أي رسومات ، لكنه موجود.

ولإثبات ذلك ، يمكنك الآن استخدام هذا السطر:

Console.WriteLine (Rabbit1.RabbitName)؛

هذا سيخبرك بعد ذلك باسم الأرنب الذي أنشأته للتو!

يمكننا كذلك زيادة وزن الأرنب لدينا ، على هذا النحو:

Rabbit1.RabbitWeight ++؛ Console.WriteLine (Rabbit1.RabbitName + "weighs" + Rabbit1.RabbitWeight + "kg")؛

لاحظ هنا أن إضافة "++" في نهاية شيء ما سيزيد قيمته بشكل تدريجي بمقدار واحد (يمكنك أيضًا كتابة "RabbitWeight = RabbitWeight + 1").

نظرًا لأن صفنا يمكن أن يصنع أكبر عدد ممكن من الأرانب كما نود ، يمكننا إنشاء الكثير من الأرانب المختلفة ، ولكل منها خصائصه الخاصة.

مضيفا السلوكيات

ثم قد نختار أيضًا إعطاء نوع من السلوك للأرنب. في هذه الحالة ، دعهم يأكلون.

للقيام بذلك ، سنقوم بإنشاء طريقة عامة تسمى "أكل" ، وهذا من شأنه أن يجعل صوت الأكل ، مع زيادة تدريجية في وزن الأرنب:

public void Eat () {Console.WriteLine (RabbitName + ": Nibble nibble!")؛ RabbitWeight ++؛ }

تذكر أن كلمة "عام" تعني الوصول إليها من خارج الفصل ، و "باطل" يعني أن الطريقة لا تُرجع أي بيانات.

ثم ، من داخل Program.cs ، سنكون قادرين على استدعاء هذه الطريقة وهذا سيجعل الأرنب من اختيارنا يأكل ويكبر:

Console.WriteLine (Rabbit1.RabbitName + "weighs" + Rabbit1.RabbitWeight + "kg")؛ Rabbit1.Eat ()؛ Rabbit1.Eat ()؛ Rabbit1.Eat ()؛ Console.WriteLine (Rabbit1.RabbitName + "weighs" + Rabbit1.RabbitWeight + "kg")؛

سيؤدي ذلك إلى تناول جيف ثلاث مرات ، ثم سنسمعها ونرى أنه أصبح أكبر! إذا كان لدينا أرنب آخر في المشهد ، فيمكنهم تناول الطعام أيضًا!

Console.WriteLine (Rabbit1.RabbitName + "weighs" + Rabbit1.RabbitWeight + "kg")؛ Console.WriteLine (Rabbit2.RabbitName + "weighs" + Rabbit2.RabbitWeight + "kg")؛ Rabbit1.Eat ()؛ Rabbit1.Eat ()؛ Rabbit2.Eat ()؛ Rabbit2.Eat ()؛ Rabbit1.Eat ()؛ Console.WriteLine (Rabbit1.RabbitName + "weighs" + Rabbit1.RabbitWeight + "kg")؛ Console.WriteLine (Rabbit2.RabbitName + "weighs" + Rabbit2.RabbitWeight + "kg")؛

في ذلك مثل الأرانب

هذه ليست طريقة أنيقة للتعامل مع الكثير من الكائنات ، حيث نحتاج إلى كتابة الأوامر لكل أرنب يدويًا ولا يمكننا زيادة عدد الأرانب بشكل ديناميكي كما نريد. لا نريد فقط تعلم لغة C # - نريد أن نتعلم كيفية كتابة رمز C # نظيف!

هذا هو السبب في أننا قد نستخدم قائمة. قائمة هي مجموعة. المتغير نفسه الذي يحتوي أساسا على إشارات إلى متغيرات أخرى. في هذه الحالة ، قد نضع قائمة بالأرانب ، والخبر السار هو أنه من السهل جدًا فهم ذلك:

قائمة قائمة RabbitList = قائمة جديدة()؛ RabbitList.Add (New Rabbit ("Jeff"، "brown"، 1، 1))؛ RabbitList.Add (New Rabbit ("Sam"، "white"، 1، 2))؛

هذا يخلق الأرنب الجديد كما كان من قبل ، ولكن في وقت واحد يضيف الأرنب إلى القائمة. على قدم المساواة ، يمكن أن نقول هذا:

Rabbit Rabbit3 = new Rabbit ("Jonny"، "orange"، 1، 1)؛ RabbitList.Add (Rabbit3)؛

وفي كلتا الحالتين ، تم إنشاء كائن وإضافته إلى القائمة.

يمكننا أيضًا أن نرجع المعلومات بأناقة من قائمة الأرانب الخاصة بنا بهذه الطريقة:

foreach (var Rabbit in RabbitList) {Console.WriteLine (Rabbit.RabbitName + "weighs" + Rabbit.RabbitWeight + "kg")؛ }

بما أنك قد تكون قادرًا على معرفة ذلك ، فإن كلمة "foreach" تعني أنك تكرر خطوة واحدة لكل عنصر في القائمة. يمكنك أيضًا استرداد المعلومات من قائمتك مثل هذا:

RabbitList.Eat ()؛

هنا "1" هو الفهرس ، مما يعني أنك تشير إلى المعلومات المخزنة في الموضع الأول. كما يحدث ، هذا هو في الواقع ثانيا الأرنب الذي أضفته رغم ذلك: لأن القوائم في البرمجة تبدأ دائمًا عند 0.

فيبوناتشي

في حال لم تكن قد خمنت بعد ، سنستخدم الآن كل هذه المعلومات لإنشاء تسلسل فيبوناتشي. بعد كل شيء ، إذا كنت تتعلم تطبيق C # لنظام Android ، فيجب أن تكون قادرًا على فعل شيء مثير للاهتمام بكل هذه النظرية!

في تسلسل فيبوناتشي ، يتم إغلاق الأرانب في غرفة وتركت للتكاثر. يمكن أن تتكاثر بعد شهر واحد ، وعند هذه النقطة أنها ناضجة جنسيا (لا أستطيع أن أؤكد ما إذا كان هذا صحيح بيولوجيا الأرنب). إذا كان بإمكان كل زوج من الأرانب إنتاج مرة واحدة شهريًا من ذلك الحين ، وإنتاج نسلين ، فإليك الشكل الذي يبدو عليه التسلسل:

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

بطريقة سحرية ، كل رقم في التسلسل هو قيمة الرقمين السابقين المضافة معًا. وفقا للعلم ، وهذا هو نوع من صفقة كبيرة.

الشيء الرائع هو ، يمكننا تكرار ذلك.

أولاً ، نحتاج إلى تقديم مفهوم جديد: الحلقة. هذا ببساطة يكرر نفس الرمز مرارًا وتكرارًا حتى يتم استيفاء الشرط. تتيح لنا حلقة "for" القيام بذلك عن طريق إنشاء متغير ، وتحديد الشروط التي نرغب في تحقيقها ، ثم تشغيلها - كل العناصر المحددة داخل الأقواس:

لـ (int الشهور = 0 ؛ الشهور <100 ؛ الشهور ++) {// افعل شيئًا}

لذلك نقوم بإنشاء عدد صحيح يسمى الأشهر ، ويتم تنفيذ حلقات حتى تساوي 100. ثم نزيد عدد الأشهر بواحد.

نريد أن نرى كيف يمكن أن يصبح هذا تسلسل فيبوناتشي؟ ها:

مساحة الاسم ConsoleApp2 {class Program {static void Main (سلسلة args) {List قائمة RabbitList = قائمة جديدة()؛ RabbitList.Add (new Rabbit ("Jeff"، "brown"، 0، 1))؛ RabbitList.Add (new Rabbit ("Sam"، "white"، 0، 1))؛ لـ (int months = 0؛ months <10؛ months ++) {int firstRabbit = 0؛ int timesToReproduce = 0؛ foreach (var Rabbit in RabbitList) {Console.Write ("R")؛ if (Rabbit.RabbitAge> 0) {if (firstRabbit == 0) {firstRabbit = 1؛ } else {firstRabbit = 0؛ timesToReproduce ++؛ }} Rabbit.RabbitAge ++؛ } لـ (int i = 0 ؛ أنا <timesToReproduce ؛ i ++) {RabbitList.Add (New Rabbit ("NewBabyRabbit"، "brown"، 0، 1))؛ RabbitList.Add (new Rabbit ("NewBabyRabbit"، "brown"، 0، 1))؛ Console.Write ( "ص")؛ Console.Write ( "ص")؛ } Console.WriteLine ("--- هناك" + RabbitList.Count / 2 + "أزواج من الأرانب!") ؛ Console.WriteLine ( "")؛ } Console.WriteLine ("All done!")؛ Console.ReadKey ()؛ }}}

حسنًا ، كان ذلك أصعب مما ظننت!

لن أتطرق إلى كل هذا ، ولكن باستخدام ما تعلمته بالفعل ، يجب أن تكون قادرًا على عكس ذلك.

هناك بالتأكيد طرق أكثر أناقة للقيام بذلك - أنا لست عالم رياضيات. ومع ذلك ، أعتقد أنه تمرين ممتع إلى حد ما ، وبمجرد أن تتمكن من القيام بذلك ، فأنت مستعد للوقت الكبير.

أنا أحب أن أرى أي طرق أخرى ، بالمناسبة!

أين نذهب من هنا؟ كيفية تعلم C # للأندرويد

مع كل هذه المعرفة تحت حزامك ، أنت مستعد للبدء في أشياء أكبر. على وجه الخصوص ، أنت مستعد لإجراء تجربة على برمجة Android باستخدام C # في Xamarin أو Unity.

هذا مختلف لأنك ستستخدم الفئات التي توفرها Google و Microsoft و Unity. عندما تكتب شيئًا مثل "RigidBody2D.velocity" ، فإن ما تفعله هو الوصول إلى خاصية من الفصل مسمي RigidBody2D. هذا يعمل بنفس الطريقة ، والفرق الوحيد هو أنه لا يمكنك رؤية RigidBody2D لأنك لم تنشئه بنفسك.

مع وجود C # تحت حزامك ، يجب أن تكون مستعدًا للقفز إلى أيٍّ من هذين الخيارين وأن تحصل على بداية رائعة عندما يتعلق الأمر بفهم ما يجري:

  • كيفية صنع تطبيق أندرويد مع Xamarin
  • صمم أول لعبة Android في 7 دقائق باستخدام Unity

في درس قادم ، سننظر أيضًا في الكيفية التي يمكنك بها استخدام المنعطف واستخدامها لإنشاء تطبيقات Windows بدلاً من ذلك!

تعد هواتف نوكيا الذكية - التي تصنعها شركة تدعى HMD Global - من أفضل الأجهزة في العالم عندما يتعلق الأمر بالحصول على ميزات رائعة ، وأجهزة صلبة ، وتحديثات البرامج المتكررة جميعها بأسعار منخفضة بشكل لا ي...

ضربت ألعاب Freemium Android مثل شاحنة التفريغ. سمحت للتطبيقات والألعاب بالمجان مع قيام المستخدمين بدفع الأموال في وقت لاحق إذا اختاروا ذلك وكان ذلك هو النموذج السائد. تجني ألعاب Freemium أموالاً أكثر ...

مثير للاهتمام