Naučte sa C # pre Android časť 2: Triedy a slučky

Autor: John Stephens
Dátum Stvorenia: 24 Január 2021
Dátum Aktualizácie: 1 V Júli 2024
Anonim
Lecture 1 Introduction to C Language Part-1 Hindi | MySirG.com
Video: Lecture 1 Introduction to C Language Part-1 Hindi | MySirG.com

Obsah


V časti jedna z tejto série tutoriálov pre Android o výučbe C # sme sa zaoberali absolútnymi základmi programovania C #. Pokrývali sme metódy (skupiny kódu, ktoré vykonávajú konkrétne úlohy), niektoré základné syntaxe (napríklad potrebu bodkočiarok), premenné (kontajnery, v ktorých sa ukladajú údaje), a „ak príkazy“ na riadenie toku (vetviaci kód, ktorý je závislý od hodnôt). premenných). Tiež sme videli, ako odovzdávať premenné, ako sú reťazce, ako argumenty medzi metódami.

Mali by ste sa vrátiť a pozrieť sa na to, ak ste to už nečítali.

V tomto okamihu by ste mali byť schopní vytvoriť niektoré základné aplikácie konzoly, napríklad kvízy, aplikácie na ukladanie údajov alebo kalkulačky.


V druhej časti sa chystáme trochu ambicióznejšie, pokúsime sa pokryť niektoré ďalšie základy - napríklad cykly - a skúmame, ako vytvárať a interagovať s triedami. To znamená, že sa nám podarí začať s vývojom systému Android a uvidíme, ako preklenúť túto medzeru. Pokračujte v čítaní, ak sa chcete skutočne naučiť C #!

Pochopenie tried a objektovo orientovaného programovania

V krátkosti v prvej časti sme vysvetlili základy objektovo orientovaného programovania, ktoré sa otáča okolo jazykov pomocou „tried“ na opis „objektov“. Objekt je časť údajov, ktoré môžu predstavovať veľa vecí. Mohlo by to byť doslovným objektom v hernom svete, ako je jar, alebo by to mohlo byť niečo abstraktnejšie, napríklad manažér, ktorý spracováva skóre hráča.

Jedna trieda môže vytvoriť viac objektov. Mohli by ste teda napísať jednu „nepriateľskú“ triedu, ale dokázať vygenerovať celú úroveň plnú zloduchov. To je jedna z veľkých výhod použitia objektovo orientovaného programovania. Inak jediným spôsobom, ako zvládnuť správanie veľkého množstva nepriateľov, by bolo použitie mnohých individuálnych metód, z ktorých každá obsahuje pokyny, ako by sa mal zlý človek správať za rôznych okolností.


Ak je stále trochu zložitejšie obísť hlavu, všetko, čo potrebujete vedieť, je to, že objekty majú vlastnosti a správanie. Je to ako skutočné objekty. Napríklad králik má vlastnosti, ako je veľkosť, farba a názov; a má správanie, napríklad skákanie, sedenie a jedenie. Vlastnosti sú v zásade premenné a správanie sú metódy.

Program, ktorý sme vytvorili v poslednej lekcii, je tiež príkladom triedy. „Objekt“, ktorý tu popisujeme, je nejaký druh systému na kontrolu hesla. Vlastnosť, ktorú má, je reťazec UserName a chovanie má NewMethod (kontrola mena používateľa a pozdravovanie).

Ak je to takstále trochu mätúce, jediný spôsob, ako obísť hlavu, je vytvoriť si novú triedu alebo dvoch sami!

Vytvorenie novej triedy

Ak sa chcete naučiť C #, musíte vedieť, ako vytvoriť nové triedy. Našťastie je to veľmi ľahké. Stačí kliknúť na položku ponuky Projekt a potom vybrať možnosť + Pridať triedu.

Vyberte „C #“ a nazvite ho „Králik“. Túto triedu použijeme na vytvorenie koncepčných králikov. O chvíľu uvidíte, čo tým myslím.

Ak na svojom Prieskumníkovi riešení vpravo kliknete, uvidíte, že pod Program.cs bol vytvorený nový súbor s názvom Rabbit.cs. Výborne - to je jedna z najdôležitejších vecí, ktoré by ste mali vedieť, ak sa chcete naučiť C # pre Android!

Nový súbor Rabbit.cs má niektoré rovnaké kódy „boilerplate“ ako predtým. Stále patrí do rovnakého menného priestoru a má triedu s rovnakým názvom ako súbor.

namespace ConsoleApp2 {class Rabbit {}}

Teraz poskytneme našim králikom niektoré vlastnosti s tým, čo nazývame „konštruktor“.

Konštruktor je metóda v triede, ktorá inicializuje objekt a umožňuje nám definovať jeho vlastnosti pri jeho prvom vytvorení. V tomto prípade povieme nasledujúce:

namespace ConsoleApp2 {class Rabbit {public string RabbitName; verejný reťazec RabbitColor; public int RabbitAge; public int RabbitWeight; verejný králik (názov reťazca, farba reťazca, int vek, int hmotnosť) {RabbitName = name; RabbitColor = farba; RabbitAge = vek; RabbitWeight = hmotnosť; }}}

To nám umožňuje vytvoriť nového králika z inej triedy a definovať jeho vlastnosti tak, ako to robíme:

Králik Králik1 = nový králik („Jeff“, „hnedý“, 1, 1);

Teraz si uvedomujem, že pri spätnej váhe by to asi mal byť plavák alebo dvojnásobok, aby sme mohli počítať s desatinnými číslami, ale získate predstavu. Ideme zaokrúhliť nášho králika na najbližšie celé číslo.

Keď píšete králika, uvidíte, že sa zobrazí výzva na zadanie správnych argumentov. Týmto spôsobom sa vaša trieda stala súčasťou kódu takmer.

Verte tomu alebo nie, tento kód vytvoril králika! Nevidíte svojho králika, pretože nemáme žiadnu grafiku, ale je tam.

A na dôkaz toho môžete teraz použiť tento riadok:

Console.WriteLine (Rabbit1.RabbitName);

Toto vám povie meno králika, ktorého ste práve vytvorili!

Rovnako tak môžeme zvýšiť hmotnosť nášho králika:

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

Upozorňujeme, že ak na koniec niečoho pridáte znak „++“, postupne sa zvýši jeho hodnota o jednu (môžete tiež napísať „RabbitWeight = RabbitWeight + 1“).

Pretože naša trieda dokáže vyrobiť toľko králikov, koľko sa nám páči, dokážeme vytvoriť veľa rôznych králikov, z ktorých každý má svoje vlastné vlastnosti.

Pridávanie správania

Potom by sme sa mohli rozhodnúť, aby sme našim králikom dali nejaké správanie. V takom prípade nechajme ich jesť.

Na tento účel by sme vytvorili verejnú metódu s názvom „Jedzte“, čo by vydalo zdravý zvuk a zároveň by sa postupne zvyšovala hmotnosť králika:

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

Pamätajte, že „verejné“ znamená prístupné mimo triedy a „neplatné“ znamená, že metóda nevracia žiadne údaje.

Potom z vnútra Program.cs budeme môcť túto metódu nazvať a králik podľa nášho výberu bude jesť a zväčší sa:

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

To spôsobí, že Jeff bude jesť trikrát, potom to začujeme a budeme schopní vidieť, že sa zväčší! Keby sme mali na scéne iného zajaca, mohli by tiež jesť!

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");

Na to ako králiky

Toto nie je obzvlášť elegantný spôsob, ako narábať s množstvom objektov, pretože musíme vypísať príkazy pre každého králika manuálne a nemôžeme dynamicky zvyšovať počet králikov, ako chceme. Nechceme sa iba učiť C # - chceme sa naučiť, ako písať čistý C # kód!

Preto by sme mohli použiť zoznam. Zoznam je zbierka; samotná premenná, ktorá v podstate obsahuje odkazy na iné premenné. V tomto prípade by sme mohli zostaviť zoznam králikov a dobrá správa je, že je to veľmi ľahké pochopiť:

zoznam RabbitList = nový zoznam(); RabbitList.Add (nový králik („Jeff“, „brown“, 1, 1)); RabbitList.Add (nový králik ("Sam", "white", 1, 2));

Takto sa vytvorí nový králik ako predtým, ale zároveň sa králik pridá do zoznamu. Rovnako by sme mohli povedať toto:

Králik Králik3 = nový králik („Jonny“, „oranžový“, 1, 1); RabbitList.Add (Rabbit3);

V oboch prípadoch bol objekt vytvorený a pridaný do zoznamu.

Informácie z nášho zoznamu králikov môžeme pohodlne a elegantne vrátiť týmto spôsobom:

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

Ako môžete zistiť, výraz „foreach“ znamená opakovať jeden krok pre každú položku v zozname. Informácie zo svojho zoznamu môžete tiež získať takto:

RabbitList.Eat ();

Tu je „1“ index, čo znamená, že odkazujete na informácie uložené na pozícii jedna. Ako sa to stane, je to vlastne druhý králika, ktorého ste si pridali: pretože zoznamy v programovaní začínajú vždy na 0.

Fibonacci

V prípade, že ste to ešte uhodli, všetky tieto informácie použijeme na vytvorenie sekvencie Fibonacci. Nakoniec, ak sa učíte C # pre Android, mali by ste byť schopní skutočne urobiť niečo zaujímavé so všetkou touto teóriou!

V sekvencii Fibonacci sú králiky zavreté v miestnosti a nechajú sa rozmnožovať. Môžu sa rozmnožiť po mesiaci, kedy sú sexuálne zrelé (nemôžem potvrdiť, či je to správna králičia biológia). Ak každý pár králikov môže od tej doby produkovať jedenkrát mesačne a produkovať dvoch potomkov, vyzerá táto sekvencia takto:

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

Magicky je každé číslo v poradí hodnota predchádzajúcich dvoch čísiel. Podľa vedy je to taká veľká vec.

Super je, že to dokážeme zopakovať.

Najprv musíme zaviesť nový koncept: slučka. Toto jednoducho opakuje ten istý kód znova a znova, kým nie je splnená podmienka. Slučka „for“ nám umožňuje vytvoriť premennú, nastaviť podmienky, ktoré chceme splniť, a potom na nej pracovať - ​​všetky sú definované v zátvorkách:

pre (int mesiace = 0; mesiace <100; mesiace ++) {// Urobte niečo}

Vytvárame teda celé číslo, ktoré sa nazýva mesiace, a opakuje sa, až kým nedosiahne hodnotu 100. Potom zvyšujeme počet mesiacov o jeden.

Chcete vidieť, ako sa to môže stať Fibonacciho sekvenciou? hľa:

namespace ConsoleApp2 {class Program {static void Main (reťazcové oblúky) {List RabbitList = nový zoznam(); RabbitList.Add (nový králik („Jeff“, „brown“, 0, 1)); RabbitList.Add (nový králik ("Sam", "white", 0, 1)); pre (int mesiace = 0; mesiace <10; mesiace ++) {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 ++; }} Králik.RabbitAge ++; } pre (int i = 0; i <timesToReproduce; i ++) {RabbitList.Add (nový králik ("NewBabyRabbit", "hnedý", 0, 1)); RabbitList.Add (nový králik ("NewBabyRabbit", "brown", 0, 1)); Console.Write ( "r"); Console.Write ( "r"); } Console.WriteLine ("--- Existujú" + RabbitList.Count / 2 + "párov králikov!"); Console.WriteLine ( ""); } Console.WriteLine („Všetko je hotové!“); Console.ReadKey (); }}}

Dobre, to bolo ťažšie, ako som si myslel!

Nebudem sa tým zaoberať, ale pomocou toho, čo ste sa už naučili, by ste to mali vedieť spätne analyzovať.

Určite existujú elegantnejšie spôsoby, ako to dosiahnuť - nie som matematik. Myslím si však, že je to celkom zábavné cvičenie a akonáhle to dokážete, ste pripravení na veľký čas.

Mimochodom, rád by som videl akékoľvek iné prístupy!

Kam ideme odtiaľto? Ako sa naučiť C # pre Android

So všetkými týmito vedomosťami pod pásom ste pripravení začať s väčšími vecami. Predovšetkým ste pripravení na programovanie Androidu pomocou C # v Xamarine alebo Unity.

Je to iné, pretože budete používať triedy poskytované spoločnosťami Google, Microsoft a Unity. Keď píšete niečo ako „RigidBody2D.velocity“, robíte to, že máte prístup k nehnuteľnosti z triedy volal RigidBody2D. Funguje to rovnako, jediný rozdiel je v tom, že nevidíte RigidBody2D, pretože ste ho sami nevytvorili.

S týmto C # pod pásom by ste mali byť pripravení skočiť do jednej z týchto možností a začať s veľkým náskokom, pokiaľ ide o pochopenie toho, čo sa deje:

  • Ako vytvoriť aplikáciu pre Android s Xamarin
  • Zostavte si svoju prvú hru pre Android za 7 minút pomocou Unity

V nadchádzajúcej lekcii sa tiež pozrieme na to, ako môžete urobiť otočenie v smere U a použiť ho na vytváranie aplikácií systému Windows.

Ak vlatníte telefón Androidom rozšíriteľnou pamäťou, dnešný šťatný deň. Na obmedzený ča i môžete na Amazone vyzdvihnúť microD kartu anDik Ultra 400 GB za...

tále vidím mať domov ako vrchol úpechu, ale vždy exitujú pôoby, ako zlepšiť zážitok zo života v ňom. To je mieto, kde prichádzajú inteligentné domáce ...

Články Portálu