Õppige C # Androidi 2. osa jaoks: klassid ja silmused

Autor: John Stephens
Loomise Kuupäev: 24 Jaanuar 2021
Värskenduse Kuupäev: 1 Juuli 2024
Anonim
Õppige C # Androidi 2. osa jaoks: klassid ja silmused - Rakendused
Õppige C # Androidi 2. osa jaoks: klassid ja silmused - Rakendused

Sisu


Selle Androidi C # õppimise õpetussarja ühes osas vaatasime C # programmeerimise absoluutseid põhitõdesid. Me hõlmasime meetodeid (koodirühmi, mis täidavad konkreetseid ülesandeid), mõnda põhilist süntaksi (näiteks semikoolonite vajadust), muutujaid (andmeid säilitavaid konteinereid) ja voolu juhtimise “if lausete” (hargnemiskood, mis sõltub väärtustest) muutujate arv). Samuti nägime, kuidas edastada muutujaid nagu stringe argumentidena meetodite vahel.

Kui te pole seda juba lugenud, peaksite tagasi minema ja seda vaatama.

Sel hetkel peaksite saama teha mõned põhilised konsoolirakendused, näiteks viktoriinid, andmeid salvestavad rakendused või kalkulaatorid.

Teises osas hakkame pisut ambitsioonikamaks minema, hõlmates veel mõnda põhitõde - näiteks silmuseid - ja uurime, kuidas klassides luua ja kuidas nendega suhelda. See tähendab, et saame hakata Androidi arendamisel silma peal hoidma ja vaatama, kuidas seda lõhet ületada. Jätkake lugemist, kui soovite C # -d tõeliselt õppida!


Klasside ja objektorienteeritud programmeerimise mõistmine

Lühidalt esimeses osas selgitasime objektorienteeritud programmeerimise põhitõdesid, mis keerlevad keelte ümber, kasutades objektide kirjeldamiseks klasse. Objekt on andmete osa, mis võib kujutada paljusid asju. See võib olla sõnasõnaline objekt mängumaailmas nagu kevad või see võib olla midagi abstraktsemat, näiteks mänedžer, kes haldab mängija punkte.

Ühes klassis saab luua mitu objekti. Nii et võite kirjutada ühe “vaenlase” klassi, kuid suudate luua terve taseme, mis on täis pahelisi. See on objektorienteeritud programmeerimise kasutamise üks suuri eeliseid. Vastasel juhul oleks ainus viis paljude vaenlaste käitumisega tegelemiseks kasutada palju individuaalseid meetodeid, millest igaüks sisaldab juhiseid selle kohta, kuidas halb mees erinevates olukordades käituma peaks.


Kui see on ikka natuke keeruline, et teie peas ringi käia, peate tõesti teadma, et objektidel on omadused ja käitumine. See on täpselt nagu päris objektid. Näiteks on küülikul sellised omadused nagu suurus, värv ja nimi; ja sellel on käitumist, näiteks hüppamine, istumine ja söömine. Põhimõtteliselt on omadused muutujad ja käitumine on meetodid.

Programm, mille ehitasime eelmisel tunnil, on näide ka klassist. Objekt, mida me siin kirjeldame, on mingi paroolikontrollisüsteem. Sellel omadusel on string UserName ja käitumisel on see NewMethod (kontrollitakse kasutaja nime ja tervitatakse teda).

Kui see onikka natuke segane, ainus viis oma peas ringi käia on luua ise uus klass või kaks!

Uue klassi loomine

Kui soovite õppida C #, peate teadma, kuidas uusi klasse teha. Õnneks on see väga lihtne. Klõpsake lihtsalt menüü üksust Projekt ja valige siis „+ Lisa klass”.

Valige "C #" ja nimetage seda "Küülikuks". Me hakkame seda klassi looma kontseptuaalsete küülikute jaoks. Te näete, mida ma hetkega mõtlen.

Kui vaatate oma paremal asuvat lahenduste uurijat, näete, et programmi Program.cs all on loodud uus fail nimega Rabbit.cs. Hästi tehtud - see on üks kõige olulisemaid asju, mida peaksite teadma, kui soovite õppida C # -i Androidi jaoks!

Uuel Rabbit.cs-failil on osa samast “boileri” koodist kui varem. See kuulub endiselt samasse nimeruumi ja sellel on sama nimega klass kui failil.

nimeruum ConsoleApp2 {klassiküülik {}}

Nüüd anname oma küülikule mõned omadused, mida me nimetame ehitajaks.

Ehitaja on meetod klassis, mis initsialiseerib objekti, võimaldades määratleda selle omadused selle esmakordsel loomisel. Sel juhul räägime järgmiselt:

nimeruum ConsoleApp2 {klass Jänes {avalik string RabbitName; avalik string RabbitColor; avalik int RabbitAge; public int RabbitWeight; avalik küülik (stringi nimi, stringi värv, keskmine vanus, keskmine kaal) {RabbitName = nimi; RabbitColor = värv; RabbitAge = vanus; RabbitWeight = kaal; }}}

See võimaldab meil luua teisest klassist uue küüliku ja määratleda selle omadused nagu meil:

Rabbit Rabbit1 = uus küülik (“Jeff”, “pruun”, 1, 1);

Nüüd ma mõistan tagantjärele mõeldes, et kaalu oleks pidanud kümnendkohtade lubamiseks olema ujuk või kahekordne, kuid saate idee. Ümardame oma küüliku lähima täisarvuni.

Kui küülik välja kirjutate, näete, et teil palutakse edastada õiged argumendid. Sel moel on teie klass peaaegu muutunud koodi osaks.

Uskuge või mitte, see kood on loonud jänese! Te ei näe oma küülikut, kuna meil pole graafikat, kuid see on seal olemas.

Ja selle tõestamiseks võite nüüd kasutada seda rida:

Console.WriteLine (Rabbit1.RabbitName);

See ütleb siis äsja loodud küüliku nime!

Samuti saame oma küüliku kaalu suurendada, näiteks nii:

Jänes1.KüülikWeight ++; Console.WriteLine (Rabbit1.RabbitName + "kaalub" + Rabbit1.RabbitWeight + "kg");

Pange siin tähele, et kui lisate millegi lõppu sõna “++”, suureneb selle väärtus järk-järgult ühe võrra (võite kirjutada ka “RabbitWeight = RabbitWeight + 1”).

Kuna meie klass võib teha nii palju küülikuid, kui meile meeldib, saame luua palju erinevaid küülikuid, kellel kõigil on oma omadused.

Käitumisharjumuste lisamine

Seejärel võiksime oma küülikule ka omamoodi käituda. Laskem sel juhul süüa.

Selleks looksime avaliku meetodi nimega “Söö”, mis annaks söömisheli, suurendades samal ajal ka küüliku kaalu:

public void Söö () {Console.WriteLine (RabbitName + ": Nibble nibble!"); KüülikWeight ++; }

Pidage meeles, et „avalik” tähendab väljastpoolt klassi pääsevat ja „tühine” tähendab, et meetod ei tagasta andmeid.

Siis saame programmi.cs seest seda meetodit nimetada ja see muudab meie valitud jänese sööma ja suuremaks:

Console.WriteLine (Rabbit1.RabbitName + "kaalub" + Rabbit1.RabbitWeight + "kg"); Jänes1.Sööma (); Jänes1.Sööma (); Jänes1.Sööma (); Console.WriteLine (Rabbit1.RabbitName + "kaalub" + Rabbit1.RabbitWeight + "kg");

See põhjustab Jeffi söömist kolm korda, siis kuuleme seda ja näeme, et ta on suuremaks saanud! Kui meil oleks sündmuskohal veel üks jänes, võiksid nad ka süüa!

Console.WriteLine (Rabbit1.RabbitName + "kaalub" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "kaalub" + Rabbit2.RabbitWeight + "kg"); Jänes1.Sööma (); Jänes1.Sööma (); Jänes2.Sööma (); Jänes2.Sööma (); Jänes1.Sööma (); Console.WriteLine (Rabbit1.RabbitName + "kaalub" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "kaalub" + Rabbit2.RabbitWeight + "kg");

Selles nagu küülikud

See ei ole eriti elegantne viis paljude objektide käsitsemiseks, kuna peame iga küüliku käsklused käsitsi välja kirjutama ega saa küülikute arvu dünaamiliselt suurendada nii palju kui tahame. Me ei taha lihtsalt õppida C # -d - tahame õppida puhta C # koodi kirjutamist!

Seetõttu võime kasutada nimekirja. Nimekiri on kogumik; muutuja ise, mis sisaldab põhimõtteliselt viiteid muudele muutujatele. Sel juhul võime koostada küülikute nimekirja ja hea uudis on see, et sellest on väga lihtne aru saada:

Loend RabbitList = uus nimekiri(); RabbitList.Add (uus Jänes ("Jeff", "pruun", 1, 1)); RabbitList.Add (uus Jänes ("Sam", "valge", 1, 2));

See loob uue küüliku nagu enne, kuid lisab samal ajal küüliku nimekirja. Samamoodi võiksime öelda järgmist:

Rabbit Rabbit3 = uus küülik ("Jonny", "oranž", 1, 1); RabbitList.Add (Rabbit3);

Mõlemal juhul on objekt loodud ja loendisse lisatud.

Samuti saame küülikute nimekirjast mugavalt ja elegantselt teavet tagasi saada:

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

Nagu võib-olla õnnestub aru saada, tähendab „ettekuulutamine”, et korrate üks kord iga toimingut loendis. Samuti saate oma loendist teavet hankida järgmiselt:

RabbitList.Eat ();

Siin on indeks 1, mis tähendab, et viitate esimeses positsioonis talletatud teabele. Nagu juhtub, on see tegelikult see teine lisatud jänes: sest programmeerimise loendid algavad alati 0-st.

Fibonacci

Kui te ei olnud seda veel aimanud, kasutame nüüd kogu seda teavet Fibonacci jada loomiseks. Lõppude lõpuks, kui õpite Androidi jaoks C #, peaksite suutma selle teooria abil tegelikult midagi huvitavat teha!

Fibonacci järjestuses suletakse küülikud ruumis ja jäetakse sigimiseks. Nad saavad paljuneda ühe kuu pärast, misjärel on nad seksuaalselt küpsed (ma ei saa kinnitada, kas see on õige jänesebioloogia). Kui iga küülikpaar suudab sellest ajast alates korra kuus toota kaks järeltulijat, näete seda järjestust järgmiselt:

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

Võluväel on järjestuse iga number kahe eelmise numbri liitmisel saadud väärtus. Teaduse kohaselt on see omamoodi suur asi.

Lahe on see, et me saame seda korrata.

Esiteks peame tutvustama uut kontseptsiooni: silmus. See kordab lihtsalt sama koodi ikka ja jälle, kuni mõni tingimus on täidetud. Silmus „jaoks” võimaldab meil seda teha, luues muutuja, määrates tingimused, mida tahame täita, ja tegutsedes seejärel sellel - kõik määratletud sulgudes:

jaoks (int kuud = 0; kuud <100; kuud ++) {// tehke midagi}

Seega loome täisarvu nimega kuud ja loopime, kuni see on võrdne 100-ga. Siis suurendame kuude arvu ühe võrra.

Kas soovite teada saada, kuidas sellest võib saada Fibonacci jada? Vaata:

nimeruum ConsoleApp2 {klassiprogramm {static void Main (string args) {Loend RabbitList = uus nimekiri(); RabbitList.Add (uus Jänes ("Jeff", "pruun", 0, 1)); RabbitList.Add (uus Jänes ("Sam", "valge", 0, 1)); jaoks (int kuud = 0; kuud <10; kuud ++) {int firstRabbit = 0; int timesToReproduce = 0; foreach (varia Rabbit in RabbitList) {Console.Write ("R"); if (Rabbit.RabbitAge> 0) {if (firstRabbit == 0) {firstRabbit = 1; } else {firstRabbit = 0; timesToReproduce ++; }} Rabbit.RabbitAge ++; } jaoks (int i = 0; i <timesToReproduce; i ++) {RabbitList.Add (uus küülik ("NewBabyRabbit", "pruun", 0, 1)); RabbitList.Add (uus Jänes ("NewBabyRabbit", "pruun", 0, 1)); Console.Write ("r"); Console.Write ("r"); } Console.WriteLine ("--- Seal on" + RabbitList.Count / 2 + "küülikupaare!"); Console.WriteLine (""); } Console.WriteLine ("Kõik tehtud!"); Konsool.ReadKey (); }}}

Olgu, see oli raskem, kui ma arvasin!

Ma ei kavatse seda kõike läbi vaadata, kuid kasutades juba õpitut, peaksite saama selle ümber pöörata.

Kindlasti on selleks elegantsemaid viise - ma pole matemaatik. Kuid ma arvan, et see on üsna lõbus treening ja kui saate seda teha, olete suureks ajaks valmis.

Mulle meeldiks muide näha ka muid lähenemisi!

Kuhu me siit läheme? Kuidas õppida C # Androidi jaoks

Kõigi nende vöö all olevate teadmiste korral olete valmis alustama suuremate asjadega. Eriti olete valmis peatuma Androidi programmeerimises C # abil Xamarinis või Unity'is.

See on erinev, kuna kasutate Google'i, Microsofti ja Unity pakutavaid klasse. Kui kirjutate midagi sellist nagu „RigidBody2D.velocity”, on teil juurdepääs klassile kuuluvale atribuudile kutsus RigidBody2D. See töötab täpselt samamoodi, ainus erinevus on see, et te ei näe RigidBody2D, kuna te ei ehitanud seda ise.

Kui see C # on teie vöö all, peaksite olema valmis õppima mõlemat neist võimalustest ja saama suure edumaa, kui on vaja aru saada, mis toimub:

  • Kuidas teha Xamariniga Androidi rakendus
  • Looge Unity abil oma esimene Android-mäng 7 minutiga

Eelseisvas õppetunnis vaatleme ka seda, kuidas saate teha pöörde ja kasutada seda Windowsi rakenduste loomiseks!

Auguti lõpu 2018 anti beetaveriooni tetijatele välja Nova Launcher 6.0 eimene verioon. Nüüd, enam kui kuuekuulie arendutöö järel, on TelaCoil Tarkvara meekonna Nova...

Uuendu, 8. juuli 2019 (kell 10:30 ET): Allpool kirjeldatud rakendu Notify Buddy on nüüd aadaval Google Play poe kaudu. ee tähendab, et te ei pea rakendut uueti laadima ja aate kiireid j...

Toimetaja Valik