Opi C # Android-osa 2: luokat ja silmukat

Kirjoittaja: John Stephens
Luomispäivä: 24 Tammikuu 2021
Päivityspäivä: 1 Heinäkuu 2024
Anonim
Вяжем красивую и нарядную женскую кофточку крючком. Оригинальный узор с шишечками. Часть 1.
Video: Вяжем красивую и нарядную женскую кофточку крючком. Оригинальный узор с шишечками. Часть 1.

Sisältö


Osassa tätä Android-opetusohjelmasarjaa, joka käsittelee C #: n oppimista, tarkastelimme C # -ohjelmoinnin absoluuttisia perusteita. Käsittelemme menetelmiä (koodiryhmiä, jotka suorittavat tiettyjä tehtäviä), joitain perussyntaksia (kuten puolipisteiden tarvetta), muuttujia (tietoja tallentavat säilöt) ja ”if-lauseita” virtauksen ohjaukselle (haarautumiskoodi, joka riippuu arvoista muuttujien lukumäärä). Näimme myös, kuinka muuttujat, kuten merkkijonot, välitetään argumentteina menetelmien välillä.

Sinun pitäisi palata takaisin katsomaan sitä, jos et ole vielä lukenut sitä.

Tässä vaiheessa sinun pitäisi voida tehdä joitain peruskonsolisovelluksia, kuten tietokilpailuja, tietoja tallentavia sovelluksia tai laskimia.


Toisessa osassa aiomme tulla hieman kunnianhimoisemmiksi, kattamalla joitain muita perusteita - kuten silmukat - ja tutkimalla miten luoda ja käyttää vuorovaikutusta luokkien kanssa. Tämä tarkoittaa, että pystymme aloittamaan mielenkiinnon Android-kehityksessä ja näkemään, kuinka kaventaa tämä aukko. Jatka lukemista, jos haluat todella oppia C #: tä!

Luokkien ja olio-ohjelmoinnin ymmärtäminen

Lyhyesti osassa ensimmäistä selitimme olio-ohjelmoinnin perusteet, jotka kiertävät kieliä käyttämällä luokkia kuvaamaan ”objekteja”. Objekti on tieto, joka voi edustaa monia asioita. Se voi olla kirjaimellinen esine pelimaailmassa, kuten keväällä, tai se voi olla jotain abstraktimpaa, kuten manager, joka käsittelee pelaajan pisteet.

Yksi luokka voi luoda useita objekteja. Joten saatat kirjoittaa yhden vihollisluokan, mutta pystyt tuottamaan kokonaisen tason, joka on täynnä pahoja poikia. Tämä on yksi olio-ohjelmoinnin käytön suurista eduista. Muutoin ainoa tapa käsitellä monien vihollisten käyttäytymistä olisi käyttää paljon yksilöllisiä menetelmiä, joista jokainen sisältää ohjeita siitä, kuinka pahan pojan tulisi toimia erilaisissa olosuhteissa.


Jos tämä on vielä vähän hankala saada pääsi ympäri, sinun on tiedettävä vain, että esineillä on ominaisuuksia ja käyttäytymistä. Tämä on kuin oikeita esineitä. Esimerkiksi kanilla on ominaisuuksia, kuten koko, väri ja nimi; ja sillä on käyttäytymistapoja, kuten hyppääminen, istuminen ja syöminen. Pohjimmiltaan ominaisuudet ovat muuttujia ja käyttäytyminen ovat menetelmiä.

Viimeisessä oppitunnissa rakentamamme ohjelma on esimerkki myös luokasta. Tässä kuvattava "esine" on jonkinlainen salasanan hallintajärjestelmä. Ominaisuus, joka sillä on, on merkkijono UserName, ja käyttäytyminen sillä on NewMethod (käyttäjän nimen tarkistaminen ja tervehdys).

Jos se onvielä vähän hämmentävä, ainoa tapa kiertää päätämme on luoda uusi luokka tai kaksi itseämme!

Uuden luokan luominen

Jos aiot oppia C #: ta, sinun on tiedettävä kuinka tehdä uusia luokkia. Onneksi tämä on erittäin helppoa. Napsauta vain Projekti-valikkokohta ja valitse sitten “+ Lisää luokka”.

Valitse "C #" ja kutsu sitä nimellä "Kani". Käytämme tätä luokkaa käsitteellisten kanien luomiseen. Näet mitä tarkoitan hetkessä.

Jos tarkistat Solution Explorer -sovelluksen oikealla puolella, huomaat, että uusi Rabbit.cs-tiedosto on luotu aivan Program.cs: n alle. Hyvin tehty - se on yksi tärkeimmistä asioista, jotka haluat tietää, jos haluat oppia C # -sovelluksen Androidille!

Uudessa Rabbit.cs-tiedostossa on jokin sama "kattilalevy" -koodi kuin aiemmin. Se kuuluu silti samaan nimitilaan, ja sillä on luokka, jolla on sama nimi kuin tiedostolla.

nimitila ConsoleApp2 {luokan kani {}}

Nyt annamme kanille jonkin verran ominaisuuksia, joita kutsumme "rakentajaksi".

Rakentaja on luokassa menetelmä, joka alustaa objektin, jonka avulla voimme määritellä sen ominaisuudet, kun luomme sitä ensimmäisen kerran. Tässä tapauksessa sanomme seuraavaa:

nimitila ConsoleApp2 {luokan kani {julkinen merkkijono RabbitName; julkinen merkkijono RabbitColor; julkinen RabbitAge; julkinen RabbitWeight; julkinen kani (merkkijonon nimi, merkkijonon väri, ikä, int paino) {RabbitName = nimi; RabbitColor = väri; RabbitAge = ikä; RabbitWeight = paino; }}}

Tämän avulla voimme luoda uuden kanin toisesta luokasta ja määritellä sen ominaisuudet kuten teemme:

Rabbit Rabbit1 = uusi kani (“Jeff”, “ruskea”, 1, 1);

Nyt tajuan takautuvasti painon olisi todennäköisesti pitänyt olla kelluva tai kaksinkertainen desimaalien sallimiseksi, mutta saat idean. Kierrämme kanin lähimpään kokonaislukuun.

Näet, kun kirjoitat kanin ulos, sinua kehotetaan lähettämään oikeat argumentit. Tällä tavoin luokastasi on tullut osa koodia melkein.

Usko tai älä, tämä koodi on luonut kanin! Kannetta ei voi nähdä, koska meillä ei ole grafiikkaa, mutta se on siellä.

Ja todistaaksesi sen, voit nyt käyttää tätä linjaa:

Console.WriteLine (Rabbit1.RabbitName);

Tämä kertoo sinulle juuri luomasi kanin nimen!

Voimme myös lisätä kanin painoamme, kuten näin:

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

Huomaa tässä, että lisäämällä “++” jonkin päähän lisätään asteittain sen arvo yhdellä (Voit myös kirjoittaa “RabbitWeight = RabbitWeight + 1”).

Koska luokkamme voi tehdä niin monta kania kuin haluamme, voimme luoda paljon erilaisia ​​kaneja, joilla jokaisella on omat ominaisuutensa.

Käyttäytymisen lisääminen

Saatamme sitten myös päättää antaa kanillemme jonkinlaisen käytöksen. Annetaan heidän syödä tässä tapauksessa.

Tätä varten luomme julkisen menetelmän nimeltä “Eat”, ja se antaisi syömisäänen samalla lisäämällä kanin painoa asteittain:

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

Muista, että ”julkinen” tarkoittaa luokan ulkopuolelta saatavissa olevaa, ja ”tyhjä” tarkoittaa, että menetelmä ei palauta mitään tietoja.

Sitten, Program.cs: n sisältä, voimme kutsua tätä menetelmää ja tämä tekee valitsemastasi kanista syömään ja kasvamaan:

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

Se saa Jeffin syömään kolme kertaa, niin kuulemme sen ja näemme, että hän on saanut isomman! Jos meillä olisi toinen kani paikalla, he voisivat syödä myös!

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

Siinä kuin kanit

Tämä ei ole erityisen tyylikäs tapa käsitellä paljon esineitä, koska meidän on kirjoitettava jokaisen kanin käskyt käsin eikä voida lisätä dynaamisesti kanien lukumäärää haluamaamme tapaan. Emme halua vain oppia C # - haluamme oppia kirjoittamaan puhtaan C # -koodin!

Siksi voimme käyttää luetteloa. Lista on kokoelma; itse muuttuja, joka sisältää pohjimmiltaan viittauksia muihin muuttujiin. Tässä tapauksessa saatamme tehdä luettelon kaneista, ja hyvä uutinen on, että tämä on erittäin helppo ymmärtää:

Lista RabbitList = uusi luettelo(); RabbitList.Add (uusi kani ("Jeff", "ruskea", 1, 1)); RabbitList.Add (uusi kani ("Sam", "valkoinen", 1,2));

Tämä luo uuden kanin kuten ennenkin, mutta lisää samanaikaisesti kanin luetteloon. Samoin voimme sanoa tämän:

Kani Kani3 = uusi Kani ("Jonny", "oranssi", 1, 1); RabbitList.Add (Rabbit3);

Joko niin, objekti on luotu ja lisätty luetteloon.

Voimme myös kätevästi ja tyylikkäästi palauttaa kaninluettelomme tiedot tällä tavalla:

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

Kuten saatat selvittää, ”foreach” tarkoittaa, että toistat vaiheen kerran jokaiselle luettelon kohteelle. Voit myös hakea tietoja luettelostasi seuraavasti:

RabbitList.Eat ();

Tässä “1” on hakemisto, tarkoittaen, että viitatte kohtaan 1 tallennettuihin tietoihin. Kuten tapahtuu, se todella on toinen lisäämäsi kani: koska ohjelmointiluettelot alkavat aina nollasta.

Fibonaccin

Jos et vielä ollut arvaa, aiomme nyt käyttää kaikkia näitä tietoja Fibonacci-sekvenssin luomiseen. Loppujen lopuksi, jos opit C # -sovellusta Androidille, sinun pitäisi kyetä tosiasiallisesti tekemään jotain mielenkiintoista kaiken tämän teorian avulla!

Fibonacci-sekvenssissä kanit suljetaan huoneessa ja jätetään lisääntymään. Ne voivat lisääntyä yhden kuukauden kuluttua, jolloin he ovat seksuaalisesti kypsiä (en voi vahvistaa, onko tämä oikea kanin biologia). Jos jokainen kanin pari voi tuottaa kerran kuukaudessa siitä lähtien, tuottaa kaksi jälkeläistä, sekvenssi näyttää tältä:

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

Taikuuttaan, kukin sekvenssin numero on kahden edellisen numeron arvo, joka on liitetty yhteen. Tieteen mukaan tämä on tavallaan iso juttu.

Hienoa on, että voimme toistaa sen.

Ensinnäkin meidän on otettava käyttöön uusi käsite: silmukka. Tämä yksinkertaisesti toistaa saman koodin uudestaan ​​ja uudestaan, kunnes ehto täyttyy. "For" -silmukka antaa meille tehdä tämän luomalla muuttujan, asettamalla olosuhteet, jotka haluamme täyttää, ja toimimalla sitten sen avulla - kaikki määritellyt suluissa:

varten (int kuukaudet = 0; kuukaudet <100; kuukaudet ++) {// Tee jotain}

Joten luomme kokonaislukua, jota kutsutaan kuukausiksi, ja silmukoidaan, kunnes se on 100. Sitten lisäämme kuukausien lukumäärää yhdellä.

Haluatko nähdä kuinka siitä voi tulla Fibonacci-sekvenssi? Katso:

nimitila ConsoleApp2 {luokkaohjelma {staattinen void Main (merkkijonot) {Luettelo RabbitList = uusi luettelo(); RabbitList.Add (uusi kani ("Jeff", "ruskea", 0, 1)); RabbitList.Add (uusi kani ("Sam", "valkoinen", 0, 1)); varten (int kuukaudet = 0; kuukaudet <10; kuukaudet ++) {int firstRabbit = 0; int kertaaToReproduce = 0; foreach (Var Rabbit RabbitListissä) {Console.Write ("R"); if (Rabbit.RabbitAge> 0) {if (firstRabbit == 0) {firstRabbit = 1; } else {firstRabbit = 0; timesToReproduce ++; }} Rabbit.RabbitAge ++; } varten (int i = 0; i <timesToReproduce; i ++) {RabbitList.Add (uusi kani ("NewBabyRabbit", "ruskea", 0, 1)); RabbitList.Add (uusi kani ("NewBabyRabbit", "ruskea", 0, 1)); Console.Write ( "r"); Console.Write ( "r"); } Console.WriteLine ("--- On" + RabbitList.Count / 2 + "paria kaneja!"); Console.WriteLine ( ""); } Console.WriteLine ("Kaikki valmis!"); Console.ReadKey (); }}}

Okei, se oli vaikeampaa kuin luulin!

En aio käydä läpi kaikkea tätä, mutta käyttämällä jo opittua sinun pitäisi pystyä kääntämään se uudelleen.

Tätä varten on ehdottomasti tyylikämpiä tapoja - en ole matemaatikko. Mielestäni se on kuitenkin melko hauska harjoitus, ja kun pystyt siihen, olet valmis suureen aikaan.

Haluaisin nähdä muuten kaikki lähestymistavat!

Minne menemme täältä? Kuinka oppia C # Androidille

Kun kaikki tieto on vyön alla, olet valmis aloittamaan isommista asioista. Erityisesti olet valmis ottamaan kiinni Android-ohjelmoinnista C #: n avulla Xamarinissa tai Unityssa.

Tämä on erilainen, koska käytät Googlen, Microsoftin ja Unityn tarjoamia luokkia. Kun kirjoitat jotain "RigidBody2D.velocity" -tapahtumaa, käytät ominaisuuden käyttämistä luokalta olla nimeltään RigidBody2D. Tämä toimii samalla tavalla, ainoa ero on siinä, että et näe RigidBody2D: tä, koska et ole itse luonut sitä.

Kun tämä C # on vyön alla, sinun pitäisi olla valmis hyppäämään jompaankumpaan näistä vaihtoehdoista ja saavuttamaan suuri etumatka, kun tulee ymmärtää mitä tapahtuu:

  • Kuinka tehdä Android-sovellus Xamarinin kanssa
  • Rakenna ensimmäinen Android-pelisi 7 minuutissa Unityn avulla

Tulevassa oppitunnissa tarkastellaan myös, kuinka voit ottaa käännöksen ja käyttää tätä rakentamaan Windows-sovelluksia sen sijaan!

Yömuodoita on tullut yki tärkeimmitä kameran ominaiuukita nykyään. Yhditämällä ueita kuvia ja muita käittelytekniikoita aadaan parempia kuvia hämä...

OnePlu-perutaja ja toimitujohtaja Pete Lau on vahvitanut, että OnePlu 7 Pro on töiä ja kekutellut eräitä en ominaiuukita....

Suosio