Dowiedz się C # dla Androida część 2: Klasy i pętle

Autor: John Stephens
Data Utworzenia: 24 Styczeń 2021
Data Aktualizacji: 1 Lipiec 2024
Anonim
Lecture 1 Introduction to C Language Part-1 Hindi | MySirG.com
Wideo: Lecture 1 Introduction to C Language Part-1 Hindi | MySirG.com

Zawartość


W pierwszej części tej serii samouczków dla Androida na temat nauki języka C # omówiliśmy absolutne podstawy programowania w języku C #. Omówiliśmy metody (grupy kodów wykonujące określone zadania), podstawową składnię (taką jak potrzeba średników), zmienne (kontenery przechowujące dane) oraz „instrukcje if” do kontroli przepływu (kod rozgałęzienia zależny od wartości zmiennych). Widzieliśmy również, jak przekazywać zmienne takie jak łańcuchy jako argumenty między metodami.

Powróć i spójrz na to, jeśli jeszcze tego nie przeczytałeś.

W tym momencie powinieneś być w stanie tworzyć podstawowe aplikacje konsoli, takie jak quizy, aplikacje do przechowywania danych lub kalkulatory.

W drugiej części będziemy nieco bardziej ambitni, obejmując więcej podstaw - takich jak pętle - i badamy, jak tworzyć i wchodzić w interakcje z klasami. Oznacza to, że będziemy mogli zacząć sprawdzać rozwój Androida i zobaczyć, jak wypełnić tę lukę. Kontynuuj czytanie, jeśli chcesz naprawdę nauczyć się języka C #!


Zrozumienie klas i programowania obiektowego

W skrócie w części pierwszej wyjaśniliśmy podstawy programowania obiektowego, które obraca się wokół języków, używając „klas” do opisania „obiektów”. Obiekt to kawałek danych, który może reprezentować wiele rzeczy. Może to być dosłowny przedmiot w świecie gry, taki jak wiosna, lub może być coś bardziej abstrakcyjnego, na przykład menedżer, który obsługuje wynik gracza.

Jedna klasa może tworzyć wiele obiektów. Możesz więc napisać jedną klasę „wroga”, ale być w stanie wygenerować cały poziom pełen złych facetów. Jest to jedna z dużych zalet korzystania z programowania obiektowego. W przeciwnym razie jedynym sposobem radzenia sobie z zachowaniem wielu wrogów byłoby użycie wielu indywidualnych metod, z których każda zawiera instrukcje dotyczące zachowania złego faceta w różnych okolicznościach.


Jeśli nadal trudno jest się przekonać, wszystko, co naprawdę musisz wiedzieć, to to, że obiekty mają właściwości i zachowania. To jest jak prawdziwe przedmioty. Na przykład królik ma takie właściwości, jak rozmiar, kolor i imię; i ma takie zachowania, jak skakanie, siedzenie i jedzenie. Zasadniczo właściwości są zmiennymi, a zachowania są metodami.

Program, który zbudowaliśmy podczas ostatniej lekcji, jest również przykładem klasy. „Obiekt”, który tu opisujemy, jest rodzajem systemu kontroli hasła. Właściwość, którą ma, to ciąg UserName, a zachowaniem jest NewMethod (sprawdzanie nazwy użytkownika i powitanie go).

Jeśli tak jestnadal trochę mylące, jedynym sposobem na obejście naszych głów jest stworzenie nowej klasy lub dwóch sami!

Tworzenie nowej klasy

Jeśli chcesz nauczyć się języka C #, musisz wiedzieć, jak tworzyć nowe zajęcia. Na szczęście jest to bardzo łatwe. Po prostu kliknij element menu Projekt, a następnie wybierz opcję „+ Dodaj klasę”.

Wybierz „C #” i nazwij to „Królik”. Będziemy używać tej klasy do tworzenia koncepcyjnych królików. Za chwilę zobaczysz, co mam na myśli.

Jeśli zaznaczysz w Eksploratorze rozwiązań po prawej stronie, zobaczysz, że nowy plik o nazwie Rabbit.cs został utworzony bezpośrednio pod Program.cs. Dobra robota - to jedna z najważniejszych rzeczy, o których warto wiedzieć, jeśli chcesz nauczyć się języka C # na Androida!

Nowy plik Rabbit.cs ma taki sam kod „kocioł” jak poprzednio. Nadal należy do tej samej przestrzeni nazw i ma klasę o tej samej nazwie co plik.

namespace ConsoleApp2 {class Rabbit {}}

Teraz nadamy naszemu królikowi pewne właściwości dzięki temu, co nazywamy „konstruktorem”.

Konstruktor to metoda w klasie, która inicjuje obiekt, co pozwala nam zdefiniować jego właściwości podczas jego pierwszego tworzenia. W tym przypadku powiemy:

namespace ConsoleApp2 {class Rabbit {ciąg publiczny RabbitName; ciąg publiczny RabbitColor; public int RabbitAge; public int RabbitWeight; public Rabbit (nazwa łańcucha, kolor łańcucha, int wiek, int waga) {RabbitName = name; RabbitColor = kolor; RabbitAge = wiek; RabbitWeight = waga; }}}

Dzięki temu możemy stworzyć nowego królika z innej klasy i zdefiniować jego właściwości w następujący sposób:

Królik Królik 1 = nowy Królik („Jeff”, „brązowy”, 1, 1);

Teraz zdaję sobie sprawę, że z perspektywy czasu waga powinna być liczbą zmiennoprzecinkową lub podwójną, aby uwzględnić miejsca po przecinku, ale masz pomysł. Zaokrąglimy naszego królika do najbliższej liczby całkowitej.

Zobaczysz, jak wypisujesz królika, pojawi się monit o podanie poprawnych argumentów. W ten sposób twoja klasa prawie stała się częścią kodu.

Wierzcie lub nie, ten kod stworzył królika! Nie możesz zobaczyć swojego królika, ponieważ nie mamy żadnej grafiki, ale ona tam jest.

Aby to udowodnić, możesz teraz użyć tej linii:

Console.WriteLine (Rabbit1.RabbitName);

To powie ci nazwę królika, który właśnie stworzyłeś!

Możemy również zwiększyć wagę naszego Królika, tak jak:

Rabbit1.RabbitWeight ++; Console.WriteLine (Rabbit1.RabbitName + „waży” + Rabbit1.RabbitWeight + „kg”);

Zauważ, że dodanie „++” na końcu czegoś zwiększy stopniowo jego wartość o jeden (Możesz również napisać „RabbitWeight = RabbitWeight + 1”).

Ponieważ nasza klasa może wytwarzać tyle królików, ile chcemy, możemy stworzyć wiele różnych królików, z których każdy ma własne właściwości.

Dodawanie zachowań

Moglibyśmy wtedy również dać naszemu królikowi jakieś zachowanie. W takim przypadku pozwólmy im jeść.

Aby to zrobić, stworzylibyśmy publiczną metodę o nazwie „Jedz”, a to wydałoby dźwięk jedzenia, jednocześnie zwiększając stopniowo wagę królika:

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

Pamiętaj, że „public” oznacza dostępny spoza klasy, a „void” oznacza, że ​​metoda nie zwraca żadnych danych.

Następnie z poziomu Program.cs będziemy mogli wywołać tę metodę, dzięki czemu wybrany królik zje i powiększy:

Console.WriteLine (Rabbit1.RabbitName + „waży” + Rabbit1.RabbitWeight + „kg”); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit1.Eat (); Console.WriteLine (Rabbit1.RabbitName + „waży” + Rabbit1.RabbitWeight + „kg”);

To sprawi, że Jeff zje trzy razy, wtedy usłyszymy to i zobaczymy, że urósł! Gdybyśmy mieli na scenie kolejnego królika, mogliby również zjeść!

Console.WriteLine (Rabbit1.RabbitName + „waży” + Rabbit1.RabbitWeight + „kg”); Console.WriteLine (Rabbit2.RabbitName + „waży” + Rabbit2.RabbitWeight + „kg”); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit2.Eat (); Rabbit2.Eat (); Rabbit1.Eat (); Console.WriteLine (Rabbit1.RabbitName + „waży” + Rabbit1.RabbitWeight + „kg”); Console.WriteLine (Rabbit2.RabbitName + „waży” + Rabbit2.RabbitWeight + „kg”);

Na to jak króliki

Nie jest to szczególnie elegancki sposób obsługi wielu obiektów, ponieważ musimy ręcznie pisać polecenia dla każdego królika i nie możemy dynamicznie zwiększać liczby królików, o ile chcemy. Nie chcemy tylko uczyć się języka C # - chcemy nauczyć się pisać czysty kod C #!

Dlatego możemy skorzystać z listy. Lista to kolekcja; sama zmienna, która zasadniczo zawiera odniesienia do innych zmiennych. W takim przypadku możemy stworzyć listę Królików, a dobrą wiadomością jest to, że bardzo łatwo to zrozumieć:

Lista RabbitList = nowa lista(); RabbitList.Add (new Rabbit („Jeff”, „brown”, 1, 1)); RabbitList.Add (nowy królik („Sam”, „biały”, 1, 2));

To tworzy nowego królika jak poprzednio, ale jednocześnie dodaje królika do listy. Równie dobrze możemy powiedzieć:

Królik Królik3 = nowy Królik („Jonny”, „pomarańczowy”, 1, 1); RabbitList.Add (Rabbit3);

Tak czy inaczej, obiekt został utworzony i dodany do listy.

Możemy również wygodnie i elegancko zwrócić informacje z naszej listy królików w ten sposób:

foreach (var Rabbit in RabbitList) {Console.WriteLine (Rabbit.RabbitName + „waży” + Rabbit.RabbitWeight + „kg”); }

Jak możesz się domyślić, „foreach” oznacza, że ​​powtórzysz krok dla każdego elementu na liście. Możesz również pobrać informacje z listy w następujący sposób:

RabbitList.Eat ();

Tutaj „1” jest indeksem, co oznacza, że ​​odnosisz się do informacji zapisanych w pozycji pierwszej. Tak się składa, że ​​tak naprawdę druga królik, który dodałeś: ponieważ listy w programowaniu zawsze zaczynają się od 0.

Fibonacciego

Jeśli jeszcze się nie zgadłeś, wykorzystamy teraz wszystkie te informacje, aby utworzyć sekwencję Fibonacciego. W końcu, jeśli uczysz się C # dla Androida, powinieneś być w stanie zrobić coś interesującego z całą tą teorią!

W sekwencji Fibonacciego króliki są zamykane w pokoju i pozostawione do rozrodu. Mogą rozmnażać się po miesiącu, w którym są dojrzałe płciowo (nie mogę potwierdzić, czy jest to prawidłowa biologia królika). Jeśli każda para królików będzie mogła produkować raz w miesiącu, produkując dwa potomstwo, oto jak wygląda ta sekwencja:

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

Magicznie każda liczba w sekwencji jest wartością dwóch poprzednich liczb dodanych razem. Według nauki jest to coś wielkiego.

Fajne jest to, że możemy to powtórzyć.

Najpierw musimy wprowadzić nową koncepcję: pętlę. To po prostu powtarza ten sam kod w kółko, dopóki nie zostanie spełniony warunek. Pętla „for” pozwala nam to zrobić, tworząc zmienną, ustawiając warunki, które chcemy spełnić, a następnie operując na niej - wszystkie zdefiniowane w nawiasach:

for (int miesiące = 0; miesiące <100; miesiące ++) {// Zrób coś}

Tworzymy więc liczbę całkowitą o nazwie miesiące i zapętlamy, aż będzie równa 100. Następnie zwiększamy liczbę miesięcy o jeden.

Chcesz zobaczyć, jak może to stać się sekwencją Fibonacciego? Ujrzeć:

namespace ConsoleApp2 {program klasy {static void Main (string args) {Lista RabbitList = nowa lista(); RabbitList.Add (new Rabbit („Jeff”, „brown”, 0, 1)); RabbitList.Add (nowy królik („Sam”, „biały”, 0, 1)); for (int miesiące = 0; miesiące <10; miesiące ++) {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 ++; } for (int i = 0; i <timesToReproduce; i ++) {RabbitList.Add (new Rabbit („NewBabyRabbit”, „brown”, 0, 1)); RabbitList.Add (nowy królik („NewBabyRabbit”, „brązowy”, 0, 1)); Console.Write („r”); Console.Write („r”); } Console.WriteLine („--- Istnieją” + RabbitList.Count / 2 + „pary królików!”); Console.WriteLine („”); } Console.WriteLine („Wszystko gotowe!”); Console.ReadKey (); }}}

Okej, to było trudniejsze niż myślałem!

Nie zamierzam przez to wszystko przechodzić, ale korzystając z tego, czego już się nauczyłeś, powinieneś być w stanie to odtworzyć.

Są zdecydowanie bardziej eleganckie sposoby na zrobienie tego - nie jestem matematykiem. Myślę jednak, że jest to dość zabawne ćwiczenie, a kiedy już możesz to zrobić, jesteś gotowy na wielki czas.

Nawiasem mówiąc, chciałbym zobaczyć inne podejścia!

Dokąd zmierzamy? Jak nauczyć się języka C # na Androida

Mając całą tę wiedzę pod ręką, możesz zacząć od większych rzeczy. W szczególności jesteś gotowy, aby podjąć próbę programowania na Androida za pomocą C # w Xamarin lub Unity.

Jest inaczej, ponieważ będziesz korzystać z klas oferowanych przez Google, Microsoft i Unity. Kiedy piszesz coś w stylu „RigidBody2D.velocity”, robisz to, uzyskując dostęp do właściwości z klasy nazywa RigidBody2D. Działa to tak samo, jedyną różnicą jest to, że nie widzisz RigidBody2D, ponieważ sam go nie zbudowałeś.

Mając ten C # pod pasem, powinieneś być gotowy, aby wskoczyć do jednej z tych opcji i mieć dużą przewagę, jeśli chodzi o zrozumienie, co się dzieje:

  • Jak zrobić aplikację na Androida za pomocą Xamarin
  • Zbuduj swoją pierwszą grę na Androida w 7 minut dzięki Unity

W nadchodzącej lekcji przyjrzymy się również, jak możesz zawrócić i wykorzystać to do tworzenia aplikacji Windows!

Canon wyróżnia ię na tle najlepzych w świecie fotografii. Ich aparaty znane ą z wyokiej jakości zdjęć, dokonałych możliwości wideo i zerokiej gamy obiektywów do wyboru. Ci, którzy zukaj...

oczewki zetawu Canona ą świetne, ale w pewnym momencie muiz wyjść ze trefy komfortu i zdobyć trochę fajnego zkła. Ci, którzy zukają najlepzych obiektywów Canon, trafili we właściwe miejce. Z...

Więcej Szczegółów