Uzziniet C # Android 2. daļai: klases un cilpas

Autors: John Stephens
Radīšanas Datums: 24 Janvārī 2021
Atjaunināšanas Datums: 1 Jūlijs 2024
Anonim
💥 Есть ли слабые места в безупречных Mercedes W211 и C219? Что общего у Е-класса и CLS?
Video: 💥 Есть ли слабые места в безупречных Mercedes W211 и C219? Что общего у Е-класса и CLS?

Saturs


Pirmajā šīs Android apmācības sērijas par C # apguvi apskatījām C # programmēšanas absolūtos pamatus. Mēs apskatījām metodes (kodu grupas, kas veic noteiktus uzdevumus), dažus pamata sintakse (piemēram, nepieciešamību pēc puskoloniem), mainīgos lielumus (konteineri, kas glabā datus) un “ja paziņojumus” plūsmas kontrolei (atzarojuma kods, kas ir atkarīgs no vērtībām mainīgo lielumu). Mēs redzējām arī to, kā nodot mainīgos lielumus, piemēram, virknes, kā argumentus starp metodēm.

Jums vajadzētu atgriezties un to apskatīt, ja vēl neesat to lasījis.

Šajā brīdī jums vajadzētu būt iespējai izveidot dažas pamata konsoles lietotnes, piemēram, viktorīnas, lietotnes, kurās tiek glabāti dati, vai kalkulatorus.

Otrajā daļā mēs kļūsim nedaudz ambiciozāki, apskatot vēl dažus pamatus, piemēram, cilpas, un izpētīsim, kā izveidot un mijiedarboties ar nodarbībām. Tas nozīmē, ka mēs varēsim sākt pievērst uzmanību Android izstrādei un redzēt, kā novērst šo plaisu. Turpiniet lasīt, ja vēlaties patiesi iemācīties C #!


Klases un objektorientētās programmēšanas izpratne

Īsumā pirmajā daļā mēs izskaidrojām uz objektu orientētas programmēšanas pamatus, kas griežas ap valodām, izmantojot “klases”, lai aprakstītu “objektus”. Objekts ir datu gabals, kas var attēlot daudzas lietas. Tas varētu būt burtisks objekts tādu spēļu pasaulē kā pavasaris, vai arī tas varētu būt kaut kas abstraktāks, piemēram, menedžeris, kurš apstrādā spēlētāja rezultātu.

Viena klase var izveidot vairākus objektus. Tātad jūs varētu uzrakstīt vienu “ienaidnieka” klasi, bet spēt radīt visu līmeni, kas ir pilns ar sliktajiem puišiem. Šis ir viens no objektorientētas programmēšanas izmantošanas lielajiem ieguvumiem. Pretējā gadījumā vienīgais veids, kā rīkoties ar daudzu ienaidnieku izturēšanos, būtu izmantot daudz individuālu metožu, no kurām katra satur instrukcijas, kā sliktajam puisim vajadzētu izturēties dažādos apstākļos.


Ja tas joprojām ir mazliet grūts, lai apietu galvu, viss, kas jums patiešām jāzina, ir tas, ka objektiem ir īpašības un izturēšanās. Tas ir tāpat kā reāli objekti. Piemēram, trusis ir tādas īpašības kā lielums, krāsa un nosaukums; un tam ir uzvedība, piemēram, lekt, sēdēt un ēst. Būtībā īpašības ir mainīgie, un uzvedība ir metodes.

Programma, kuru mēs izveidojām pēdējā nodarbībā, ir arī klases piemērs. Šeit aprakstītais “objekts” ir sava veida paroļu kontroles sistēma. Īpašums, kas tam ir, ir virkne Lietotājvārds, un tā rīcība ir NewMethod (pārbaudot lietotāja vārdu un sveicinot viņu).

Ja tas irjoprojām mazliet mulsinoši, vienīgais veids, kā apiet galvu, ir pašiem izveidot jaunu klasi vai divas!

Jaunas klases izveidošana

Ja jūs mācīsities C #, jums jāzina, kā veidot jaunas nodarbības. Par laimi tas ir ļoti viegli. Vienkārši noklikšķiniet uz izvēlnes Projekts un pēc tam atlasiet “+ Pievienot klasi”.

Izvēlieties “C #” un nosauciet to par “Trusis”. Mēs izmantosim šo klasi konceptuālu trušu radīšanai. Pēc brīža jūs redzēsit, ko es domāju.

Ja pārbaudīsit savu risinājumu pārlūku labajā pusē, redzēsit, ka tieši zem Program.cs ir izveidots jauns fails ar nosaukumu Rabbit.cs. Labi padarīts - tā ir viena no vissvarīgākajām lietām, kas jāzina, ja vēlaties iemācīties C # operētājsistēmai Android!

Jaunajam Rabbit.cs failam ir tāds pats “katlu plākšņu” kods kā iepriekš. Tas joprojām pieder tai pašai nosaukumvietai, un tai ir klase ar tādu pašu nosaukumu kā failam.

namespace ConsoleApp2 {klases trusis {}}

Tagad mēs trušam piešķirsim dažus īpašumus, ko mēs saucam par “konstruktoru”.

Konstruktors ir metode klasē, kas inicializē objektu, ļaujot mums definēt tā īpašības, kad pirmo reizi to izveidojam. Šajā gadījumā lūk, ko mēs sacīsim:

namespace ConsoleApp2 {klases trusis {publiskā virkne RabbitName; publiskā virkne RabbitColor; public int RabbitAge; public int RabbitWeight; publisks trusis (stīgas nosaukums, virknes krāsa, vecums, svars) {RabbitName = name; RabbitColor = krāsa; RabbitAge = vecums; RabbitWeight = svars; }}}

Tas ļauj mums izveidot jaunu trušu no citas klases un definēt tā īpašības tāpat kā mēs:

Rabbit Rabbit1 = jauns trusis (“Jeff”, “brūns”, 1, 1);

Tagad es retrospektīvi saprotu, ka svaram, iespējams, vajadzēja būt pludiņam vai divkāršam skaitlim, lai ļautu decimāldaļas, bet jums ir ideja. Mēs noapaļosim savu trusi līdz tuvākajam veselajam skaitlim.

Redzot, kā izrakstīsit trušu, jums tiks piedāvāts norādīt pareizos argumentus. Tādā veidā jūsu klase gandrīz ir kļuvusi par koda daļu.

Ticiet vai nē, šis kods ir izveidojis trusi! Jūs nevarat redzēt savu trusi, jo mums nav grafikas, bet tas tur ir.

Un, lai to pierādītu, tagad varat izmantot šo līniju:

Console.WriteLine (Rabbit1.RabbitName);

Tas jums pateiks nupat izveidotā truša vārdu!

Mēs tāpat varam palielināt sava Trusis svaru, piemēram:

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

Šeit ņemiet vērā, ka, pievienojot “++” kaut kādai beigām, tā vērtība tiks pakāpeniski palielināta par vienu (Varat arī rakstīt “RabbitWeight = RabbitWeight + 1”).

Tā kā mūsu klase var izgatavot tik daudz trušu, cik mums patīk, mēs varam izveidot daudz dažādu trušu, kuriem katram ir savas īpašības.

Uzvedības pievienošana

Pēc tam mēs varētu arī izvēlēties savam trušam izturēties pret kaut ko. Šajā gadījumā ļaujiet viņiem ēst.

Lai to izdarītu, mēs izveidosim publisku metodi ar nosaukumu “Ēd”, un tas radīs ēšanas skanējumu, vienlaikus palielinot arī truša svaru:

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

Atcerieties, ka “publisks” nozīmē pieejamu no klases, un “tukšs” nozīmē, ka metode neatgriež datus.

Tad no programmas.cs iekšpuses mēs varēsim izsaukt šo metodi, un tas padarīs mūsu izvēlēto trušu ēdamu un lielāku:

Console.WriteLine (Rabbit1.RabbitName + "sver" + Rabbit1.RabbitWeight + "kg"); Trusis1.Ēd (); Trusis1.Ēd (); Trusis1.Ēd (); Console.WriteLine (Rabbit1.RabbitName + "sver" + Rabbit1.RabbitWeight + "kg");

Tas liks Džefam ēst trīs reizes, tad mēs to dzirdēsim un varēsim redzēt, ka viņš ir kļuvis lielāks! Ja mums uz skatuves būtu cits trusis, viņi arī varētu ēst!

Console.WriteLine (Rabbit1.RabbitName + "sver" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "sver" + Rabbit2.RabbitWeight + "kg"); Trusis1.Ēd (); Trusis1.Ēd (); Trusis2.Ēd (); Trusis2.Ēd (); Trusis1.Ēd (); Console.WriteLine (Rabbit1.RabbitName + "sver" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "sver" + Rabbit2.RabbitWeight + "kg");

Tajā kā truši

Šis nav īpaši elegants veids, kā rīkoties ar daudziem objektiem, jo ​​mums katram manu trušu komandas ir jāizraksta manuāli un mēs nevaram dinamiski palielināt trušu skaitu, cik vēlamies. Mēs ne tikai vēlamies iemācīties C # - mēs vēlamies iemācīties rakstīt tīru C # kodu!

Tāpēc mēs varētu izmantot sarakstu. Saraksts ir kolekcija; pats mainīgais, kas pamatā satur atsauces uz citiem mainīgajiem. Šajā gadījumā mēs varētu izveidot Trušu sarakstu, un labā ziņa ir tā, ka to ir ļoti viegli saprast:

Saraksts RabbitList = jauns saraksts(); RabbitList.Add (jauns Rabbit ("Jeff", "brūns", 1, 1)); RabbitList.Add (jauns Rabbit ("Sam", "balts", 1, 2));

Tādējādi tiek izveidots jaunais trusis kā iepriekš, bet vienlaikus tas tiek pievienots trušam. Tāpat mēs varētu teikt:

Rabbit Rabbit3 = jauns Rabbit ("Jonny", "oranžs", 1, 1); RabbitList.Add (Rabbit3);

Katrā ziņā objekts ir izveidots un pievienots sarakstam.

Mēs arī ērti un eleganti varam atgriezt informāciju no mūsu trušu saraksta šādā veidā:

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

Kā jūs varētu izdomāt, “foreach” nozīmē, ka jūs atkārtojat darbību vienu reizi katram saraksta vienumam. Varat arī iegūt no sava saraksta informāciju šādi:

RabbitList.Eat ();

Šeit “1” ir indekss, kas nozīmē, ka jūs atsaucas uz informāciju, kas glabājas pirmajā pozīcijā. Kā tas notiek, tas patiesībā ir tas otrais trusis, kuru jūs pievienojāt: jo saraksti programmēšanā vienmēr sākas ar 0.

Fibonači

Ja jūs vēl neesat uzminējuši, mēs tagad izmantosim visu šo informāciju, lai izveidotu Fibonači secību. Galu galā, ja jūs mācāties C # operētājsistēmai Android, jums ar visu šo teoriju jāspēj reāli izdarīt kaut ko interesantu!

Fibonači secībā trušus ieslēdz telpā un atstāj vaislai. Viņi var pavairot pēc viena mēneša, kurā brīdī viņi ir seksuāli nobrieduši (es nevaru apstiprināt, vai tā ir pareiza Trušu bioloģija). Ja katrs trušu pāris pēc tam var ražot vienu reizi mēnesī, iegūstot divus pēcnācējus, tad izskatās šāda secība:

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

Maģiski, ka katrs kārtas numurs ir iepriekšējo divu skaitļu vērtība, kas saskaitīti kopā. Pēc zinātnes domām, tas ir diezgan liels darījums.

Forši, ka mēs to varam atkārtot.

Pirmkārt, mums jāievieš jauna koncepcija: cilpa. Tas vienkārši atkārto to pašu kodu atkal un atkal, līdz tiek izpildīts kāds nosacījums. “For” cilpa ļauj mums to izdarīt, izveidojot mainīgo, iestatot nosacījumus, kurus vēlamies izpildīt, un pēc tam operējot ar to - visi definētie iekavās:

uz (int mēneši = 0; mēneši <100; mēneši ++) {// Dariet kaut ko}

Tātad mēs izveidojam veselu skaitli, ko sauc par mēnešiem, un cilpu, līdz tas ir vienāds ar 100. Tad mēs mēneša skaitu palielinām par vienu.

Vai vēlaties uzzināt, kā tas var kļūt par Fibonači secību? Lūk:

namespace ConsoleApp2 {klases programma {static void Main (string args) {Saraksts RabbitList = jauns saraksts(); RabbitList.Add (jauns Rabbit ("Jeff", "brūns", 0, 1)); RabbitList.Add (jauns Rabbit ("Sam", "balts", 0, 1)); uz (int mēneši = 0; mēneši <10; mēneši ++) {int firstRabbit = 0; int reizesToReproduce = 0; foreach (var Rabbit in RabbitList) {Console.Write ("R"); if (Rabbit.RabbitAge> 0) {if (firstRabbit == 0) {firstRabbit = 1; } cits {firstRabbit = 0; timesToReproduce ++; }} Rabbit.RabbitAge ++; } for (int i = 0; i <timesToReproduce; i ++) {RabbitList.Add (new Rabbit ("NewBabyRabbit", "brown", 0, 1)); RabbitList.Add (jauns Rabbit ("NewBabyRabbit", "brūns", 0, 1)); Console.Write ("r"); Console.Write ("r"); } Console.WriteLine ("--- Ir" + RabbitList.Count / 2 + "trušu pāri!"); Console.WriteLine (""); } Console.WriteLine ("Viss izdarīts!"); Console.ReadKey (); }}}

Labi, ka bija grūtāk, nekā es domāju!

Es to visu neapmeklēšu, taču, izmantojot jau apgūto, jums vajadzētu būt iespējai to mainīt.

Noteikti ir daudz elegantāki veidi, kā to izdarīt - es neesmu matemātiķis. Tomēr es domāju, ka tas ir diezgan jautrs vingrinājums, un, kad jūs to varat izdarīt, jūs esat gatavs lielajam laikam.

Starp citu, es labprāt redzētu citas pieejas!

Kurp mēs ejam no šejienes? Kā iemācīties C # operētājsistēmai Android

Izmantojot visas šīs zināšanas zem jostas, jūs esat gatavs sākt strādāt pie lielākām lietām. Īpaši jūs esat gatavs iedziļināties Android programmēšanā, izmantojot C # Xamarin vai Unity.

Tas ir atšķirīgi, jo jūs izmantosit nodarbības, kuras nodrošina Google, Microsoft un Unity. Rakstot kaut ko līdzīgu “RigidBody2D.velocity”, jūs darāt, lai piekļūtu īpašumam no klases sauca RigidBody2D. Tas darbojas tieši tāpat, vienīgā atšķirība ir tā, ka RigidBody2D neredzat, jo pats to neveidojāt.

Izmantojot šo C # zem jostas, jums vajadzētu būt gatavam pāriet uz jebkuru no šīm iespējām un, sākot saprast, kas notiek:

  • Kā izveidot Android lietotni ar Xamarin
  • Izmantojot Unity, izveidojiet savu pirmo Android spēli 7 minūtēs

Gaidāmajā nodarbībā mēs apskatīsim arī to, kā jūs varat veikt pagriezienu un to izmantot, lai izveidotu Windows lietotnes.

Ja pavadāt daudz laika uz ceļa, jum vajadzētu apvērt iepēju izvēlētie kādu no daudzajiem pieejamajiem auto lādētājiem. Šī lieta ir pieejama un noderīga ikreiz, kad viedtālrunī izbeidza ula - ka notiek...

Daudzi cilvēki daudz laika pavada automašīnā.Tagad ir pienāci brīdi, kad arī Google, Apple, automašīnu ražotāji un citi mēģina tur iegūt tehnoloģija. Ekoitēma vēl nav tik pārteidzoša. Tomēr autobrauc...

Aizraujošas Publikācijas