เรียนรู้ C # สำหรับ Android ตอนที่ 2: คลาสและลูป

ผู้เขียน: John Stephens
วันที่สร้าง: 24 มกราคม 2021
วันที่อัปเดต: 1 กรกฎาคม 2024
Anonim
Android Development for Beginners - Full Course
วิดีโอ: Android Development for Beginners - Full Course

เนื้อหา


ในส่วนที่หนึ่งของชุดการสอน Android นี้เกี่ยวกับการเรียนรู้ C # เราดูที่พื้นฐานขั้นพื้นฐานของการเขียนโปรแกรม C # เราครอบคลุมวิธีการ (กลุ่มของรหัสที่ทำงานเฉพาะ), ไวยากรณ์พื้นฐานบางอย่าง (เช่นความต้องการสำหรับเซมิโคลอน), ตัวแปร (คอนเทนเนอร์ที่เก็บข้อมูล), และ“ if statement” สำหรับการควบคุมการไหล (การแยกรหัสที่ขึ้นอยู่กับค่า ของตัวแปร) นอกจากนี้เรายังเห็นวิธีการส่งผ่านตัวแปรเช่นสตริงเป็นข้อโต้แย้งระหว่างวิธีการ

คุณควรย้อนกลับไปดูว่าถ้าคุณยังไม่ได้อ่าน

ณ จุดนี้คุณควรจะสามารถสร้างแอพคอนโซลขั้นพื้นฐานบางอย่างเช่นแบบทดสอบแอพที่เก็บข้อมูลหรือเครื่องคิดเลข

ในส่วนที่สองเราจะมีความทะเยอทะยานเพิ่มขึ้นเล็กน้อยครอบคลุมพื้นฐานเพิ่มเติมบางอย่างเช่นลูปและสำรวจวิธีการสร้างและโต้ตอบกับชั้นเรียน นั่นหมายความว่าเราจะสามารถเริ่มการพัฒนา Android และดูวิธีลดช่องว่างนั้น อ่านต่อหากคุณต้องการเรียนรู้ C # อย่างแท้จริง!

การทำความเข้าใจคลาสและการเขียนโปรแกรมเชิงวัตถุ

สั้น ๆ ในส่วนที่หนึ่งเราอธิบายพื้นฐานของการเขียนโปรแกรมเชิงวัตถุซึ่งหมุนรอบภาษาโดยใช้ "คลาส" เพื่ออธิบาย "วัตถุ" วัตถุเป็นชิ้นส่วนของข้อมูลซึ่งสามารถเป็นตัวแทนของหลายสิ่ง อาจเป็นวัตถุที่แท้จริงในโลกของเกมอย่างฤดูใบไม้ผลิหรืออาจเป็นสิ่งที่เป็นนามธรรมมากกว่าเช่นผู้จัดการที่จัดการคะแนนของผู้เล่น


คลาสเดียวสามารถสร้างวัตถุหลายรายการ ดังนั้นคุณอาจเขียนคลาส“ ศัตรู” หนึ่งชั้น แต่สามารถสร้างทั้งระดับที่เต็มไปด้วยคนเลว นี่คือหนึ่งในผลประโยชน์ที่ยิ่งใหญ่ของการใช้การเขียนโปรแกรมเชิงวัตถุ มิฉะนั้นวิธีเดียวที่จะจัดการกับพฤติกรรมของศัตรูจำนวนมากคือการใช้วิธีการของแต่ละคนจำนวนมากแต่ละคนมีคำแนะนำสำหรับวิธีการที่คนเลวควรทำงานในสถานการณ์ที่แตกต่างกัน

หากสิ่งนี้ยังเป็นเรื่องยุ่งยากเล็กน้อยที่จะนำคุณไปรอบ ๆ สิ่งที่คุณต้องรู้จริงๆก็คือวัตถุนั้นมีคุณสมบัติและพฤติกรรม มันเหมือนกับของจริง ตัวอย่างเช่นกระต่ายมีคุณสมบัติเช่นขนาดสีและชื่อ และมันมีพฤติกรรมเช่นการกระโดดการนั่งและการกิน โดยพื้นฐานแล้วคุณสมบัติคือตัวแปรและพฤติกรรมเป็นวิธีการ

โปรแกรมที่เราสร้างขึ้นในบทเรียนสุดท้ายเป็นตัวอย่างของชั้นเรียนด้วย "วัตถุ" ที่เรากำลังอธิบายนี่คือระบบควบคุมรหัสผ่านบางประเภท คุณสมบัติที่มีคือชื่อผู้ใช้ของสตริงและลักษณะการทำงานของมันคือ NewMethod (ตรวจสอบชื่อของผู้ใช้และทักทายพวกเขา)


ถ้าเป็นยังคง ค่อนข้างสับสนวิธีเดียวที่จะได้รับหัวของเราคือการสร้างชั้นใหม่หรือสองตัวเรา!

สร้างคลาสใหม่

หากคุณกำลังจะเรียนรู้ C # คุณจะต้องรู้วิธีสร้างคลาสใหม่ โชคดีที่มันง่ายมาก เพียงคลิกรายการเมนูโครงการแล้วเลือก“ + เพิ่มคลาส”

เลือก“ C #” แล้วเรียกว่า“ กระต่าย” เราจะใช้คลาสนี้เพื่อสร้างกระต่ายที่มีแนวคิด คุณจะเห็นสิ่งที่ฉันหมายถึงในเวลา

หากคุณเช็คอิน Solution Explorer ทางด้านขวาคุณจะเห็นว่ามีการสร้างไฟล์ใหม่ที่ชื่อว่า Rabbit.cs ใต้ Program.cs ดีมาก - เป็นหนึ่งในสิ่งสำคัญที่สุดที่ควรทราบหากคุณต้องการเรียนรู้ C # สำหรับ Android!

ไฟล์ Rabbit.cs ใหม่มีรหัส“ สำเร็จรูป” บางส่วนเหมือนเดิม มันยังคงเป็นของเนมสเปซเดียวกันและมีคลาสที่มีชื่อเดียวกันกับไฟล์

เนมสเปซ ConsoleApp2 {คลาส Rabbit {}}

ตอนนี้เราจะให้คุณสมบัติของกระต่ายกับสิ่งที่เราเรียกว่า "ผู้สร้าง"

ตัวสร้างเป็นวิธีการในชั้นเรียนที่เริ่มต้นวัตถุช่วยให้เราสามารถกำหนดคุณสมบัติของมันเมื่อเราสร้างมันเป็นครั้งแรก ในกรณีนี้นี่คือสิ่งที่เราจะพูด:

Namespace ConsoleApp2 {คลาส Rabbit {สตริงสาธารณะ RabbitName; ประชาชนสตริง RabbitColor; แรบบิท int สาธารณะ RabbitWeight สาธารณะในที่สาธารณะ กระต่ายสาธารณะ (ชื่อสตริง, สีสตริง, อายุ, น้ำหนัก) {RabbitName = ชื่อ; RabbitColor = color; RabbitAge = อายุ; RabbitWeight = น้ำหนัก; }}}

สิ่งนี้ทำให้เราสามารถสร้างกระต่ายใหม่จากคลาสอื่นและกำหนดคุณสมบัติของมันในขณะที่เราทำ:

Rabbit Rabbit1 = กระต่ายใหม่ (“ Jeff”,“ brown”, 1, 1);

ตอนนี้ฉันรู้ว่าน้ำหนักย้อนหลังน่าจะเป็นทุ่นหรือสองเท่าเพื่อให้ได้ทศนิยม แต่คุณเข้าใจแล้ว เราจะปัดเศษกระต่ายของเราเป็นจำนวนเต็มที่ใกล้ที่สุด

คุณจะเห็นขณะที่คุณเขียนกระต่ายออกมาคุณจะได้รับพร้อมท์ให้ส่งผ่านอาร์กิวเมนต์ที่ถูกต้อง ด้วยวิธีนี้ชั้นของคุณได้กลายเป็นส่วนหนึ่งของรหัสเกือบ

เชื่อหรือไม่รหัสนี้สร้างกระต่าย! คุณไม่เห็นกระต่ายของคุณเพราะเราไม่มีกราฟิก แต่มันอยู่ที่นั่น

และเพื่อพิสูจน์คุณสามารถใช้บรรทัดนี้:

Console.WriteLine (Rabbit1.RabbitName);

นี่จะบอกชื่อของกระต่ายที่คุณเพิ่งสร้าง!

เราสามารถเพิ่มน้ำหนักกระต่ายของเราได้เช่น:

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

โปรดทราบที่นี่ว่าการเพิ่ม“ ++” ที่ส่วนท้ายของบางสิ่งจะเพิ่มมูลค่าของมันทีละหนึ่ง (คุณสามารถเขียน“ RabbitWeight = RabbitWeight + 1”)

เนื่องจากชั้นเรียนของเราสามารถสร้างกระต่ายได้มากเท่าที่เราต้องการเราจึงสามารถสร้างกระต่ายที่แตกต่างกันจำนวนมากแต่ละแห่งมีคุณสมบัติของตัวเอง

การเพิ่มพฤติกรรม

จากนั้นเราอาจเลือกที่จะให้กระต่ายของเรามีพฤติกรรมบางอย่าง ในกรณีนี้ให้พวกเขากิน

ในการทำเช่นนี้เราจะสร้างวิธีการสาธารณะที่เรียกว่า "Eat" และนี่จะทำให้เกิดเสียงการกินในขณะที่เพิ่มน้ำหนักของกระต่ายเพิ่มขึ้น:

โมฆะสาธารณะ 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");

นั่นจะทำให้ Jeff กินสามครั้งจากนั้นเราจะได้ยินและจะเห็นว่าเขาใหญ่ขึ้น! หากเรามีกระต่ายอีกตัวบนฉากพวกเขาก็สามารถกินได้เช่นกัน!

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 (Rabbit ใหม่ ("Jeff", "brown", 1, 1)); RabbitList.Add (Rabbit ใหม่ ("Sam", "white", 1, 2));

สิ่งนี้จะสร้างกระต่ายใหม่เหมือนก่อน แต่เพิ่มกระต่ายลงในรายการพร้อมกัน เราสามารถพูดสิ่งนี้อย่างเท่าเทียมกัน:

Rabbit Rabbit3 = กระต่ายใหม่ ("จอนนี่", "ส้ม", 1, 1); RabbitList.Add (Rabbit3);

ไม่ว่าจะด้วยวิธีใดวัตถุถูกสร้างและเพิ่มในรายการ

นอกจากนี้เรายังสามารถส่งคืนข้อมูลจากรายการกระต่ายของเราได้อย่างสะดวกและสง่างามด้วยวิธีนี้:

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

ในขณะที่คุณสามารถคิดออก "foreach" หมายความว่าคุณทำซ้ำขั้นตอนหนึ่งสำหรับทุกรายการในรายการ คุณยังสามารถดึงข้อมูลจากรายการของคุณเช่นนี้:

RabbitList.Eat ();

นี่คือ“ 1” คือดัชนีซึ่งหมายความว่าคุณกำลังอ้างถึงข้อมูลที่เก็บไว้ที่ตำแหน่งที่หนึ่ง มันเกิดขึ้นจริง ๆ แล้วเป็น ที่สอง กระต่ายที่คุณเพิ่ม: เนื่องจากรายการในการเขียนโปรแกรมเริ่มต้นที่ 0 เสมอ

fibonacci

ในกรณีที่คุณยังไม่ได้เดาตอนนี้เราจะใช้ข้อมูลทั้งหมดนี้เพื่อสร้างลำดับฟีโบนักชี ท้ายที่สุดหากคุณกำลังเรียนรู้ C # สำหรับ Android คุณควรจะสามารถทำสิ่งที่น่าสนใจจริง ๆ กับทฤษฎีทั้งหมดนั้นได้!

ตามลำดับฟีโบนักชีกระต่ายถูกขังอยู่ในห้องแล้วปล่อยให้ผสมพันธุ์ พวกเขาสามารถสืบพันธุ์หลังจากหนึ่งเดือนถึงจุดที่พวกเขาเป็นผู้ใหญ่ทางเพศ (ฉันไม่สามารถยืนยันได้ว่านี่เป็นชีววิทยากระต่ายที่ถูกต้อง) หากคู่กระต่ายแต่ละคู่สามารถผลิตเดือนละครั้งตั้งแต่นั้นมาผลิตลูกสองคนนี่คือลักษณะที่ลำดับ:

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

อย่างน่าอัศจรรย์ตัวเลขแต่ละตัวในลำดับคือค่าของตัวเลขสองตัวก่อนหน้ารวมเข้าด้วยกัน ตามหลักวิทยาศาสตร์แล้วนี่เป็นเรื่องใหญ่

สิ่งที่ยอดเยี่ยมคือเราสามารถทำซ้ำได้

อันดับแรกเราต้องแนะนำแนวคิดใหม่: การวนซ้ำ การทำเช่นนี้จะเป็นการทำซ้ำรหัสเดิมซ้ำแล้วซ้ำอีกจนกระทั่งเป็นไปตามเงื่อนไข การวนลูป“ สำหรับ” ทำให้เราสามารถทำได้โดยการสร้างตัวแปรการตั้งค่าเงื่อนไขที่เราต้องการพบและดำเนินการกับมัน - ทั้งหมดที่กำหนดไว้ในวงเล็บ:

สำหรับ (int เดือน = 0; เดือน <100; เดือน ++) {// ทำอะไรสักอย่าง}

ดังนั้นเราจึงสร้างจำนวนเต็มเรียกว่าเดือนและวนซ้ำจนกว่ามันจะเท่ากับ 100 จากนั้นเราจะเพิ่มจำนวนเดือนโดยหนึ่ง

ต้องการดูว่าสิ่งนี้สามารถกลายเป็นลำดับฟีโบนักชีได้อย่างไร ดูเถิด:

เนมสเปซ ConsoleApp2 {โปรแกรมคลาส {โมฆะหลักคงที่ (สตริง args) {รายการ RabbitList = รายการใหม่(); RabbitList.Add (Rabbit ใหม่ ("Jeff", "brown", 0, 1)); RabbitList.Add (Rabbit ใหม่ ("Sam", "white", 0, 1)); สำหรับ (int เดือน = 0; เดือน <10; เดือน ++) {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; i <timesToReproduce; i ++) {RabbitList.Add (Rabbit ใหม่ ("NewBabyRabbit", "brown", 0, 1)); RabbitList.Add (กระต่ายใหม่ ("NewBabyRabbit", "brown", 0, 1)); Console.Write ( "r"); Console.Write ( "r"); } Console.WriteLine ("--- มี" + RabbitList.Count / 2 + "คู่ของกระต่าย!"); Console.WriteLine ( ""); } Console.WriteLine ("เสร็จสิ้นทั้งหมด!"); Console.ReadKey (); }}}

โอเคนั่นยากกว่าที่ฉันคิดไว้!

ฉันจะไม่ดำเนินการทั้งหมด แต่ใช้สิ่งที่คุณได้เรียนรู้มาแล้วคุณควรจะทำวิศวกรรมย้อนกลับได้

มีวิธีที่สง่างามกว่านี้มากในการทำเช่นนี้ - ฉันไม่ใช่นักคณิตศาสตร์ อย่างไรก็ตามฉันคิดว่ามันเป็นการออกกำลังกายที่ค่อนข้างสนุกและเมื่อคุณทำได้คุณก็พร้อมสำหรับครั้งใหญ่

ฉันชอบที่จะเห็นวิธีการอื่นใดโดยวิธี!

เราไปจากที่นี่ที่ไหน วิธีการเรียนรู้ C # สำหรับ Android

ด้วยความรู้ทั้งหมดที่อยู่ภายใต้เข็มขัดของคุณคุณพร้อมที่จะเริ่มทำสิ่งที่ใหญ่กว่า โดยเฉพาะอย่างยิ่งคุณพร้อมที่จะเข้าร่วมการเขียนโปรแกรม Android ด้วย C # ใน Xamarin หรือ Unity

สิ่งนี้แตกต่างกันเนื่องจากคุณจะใช้คลาสที่จัดทำโดย Google, Microsoft และ Unity เมื่อคุณเขียนบางสิ่งเช่น "RigidBody2D.velocity" สิ่งที่คุณกำลังทำคือเข้าถึงคุณสมบัติจากคลาส เรียกว่า RigidBody2D สิ่งนี้ใช้งานได้เหมือนกันความแตกต่างเพียงอย่างเดียวคือคุณไม่เห็น RigidBody2D เพราะคุณไม่ได้สร้างมันเอง

ด้วย C # นี้ภายใต้เข็มขัดของคุณคุณควรพร้อมที่จะกระโดดลงไปในตัวเลือกเหล่านี้และเริ่มต้นอย่างยิ่งใหญ่เมื่อเข้าใจถึงสิ่งที่เกิดขึ้น:

  • วิธีสร้างแอพ Android ด้วย Xamarin
  • สร้างเกม Android เกมแรกของคุณใน 7 นาทีด้วย Unity

ในบทเรียนที่กำลังจะมาถึงเราจะพิจารณาว่าคุณสามารถกลับรถและใช้สิ่งนี้เพื่อสร้างแอป Windows แทนได้อย่างไร!

สองสามสัปดาห์ที่ผ่านมามีข่าวลือยืนยันยืนยันว่าซัมซุงสามารถทำงานในสิ่งที่อาจเรียกว่า Galaxy port martwatch ซึ่งเป็นผู้สืบทอดของอุปกรณ์ Gear port ของ บริษัท ในวันนี้ผู้ถูกกล่าวหาอย่างไม่เป็นทางการบางคนแ...

วันนี้ Anker บริษัท อุปกรณ์เสริมมือถือประกาศเปิดตัวผลิตภัณฑ์ใหม่ในกลุ่มผลิตภัณฑ์ยานยนต์: Anker Roav Bolt ด้วยการใช้ Roav Bolt คุณสามารถใช้คำสั่งเสียงของ Google Aitant ได้อย่างง่ายดายในขณะที่อยู่หลังพว...

การเลือกไซต์