Съдържание
- Разбиране на класове и обектно ориентирано програмиране
- Създаване на нов клас
- Добавяне на поведение
- На него като зайци
- Фибоначи
- От тук накъде? Как да научите C # за Android
В първа част от тази серия уроци за Android за изучаване на C # разгледахме абсолютните основи на C # програмирането. Ние покрихме методите (групи от кодове, които изпълняват конкретни задачи), някои основни синтаксиси (като нуждата от полу-колони), променливи (контейнери, които съхраняват данни) и "ако оператори" за контрол на потока (разклоняващ код, който зависи от стойностите на променливи). Видяхме също как да предаваме променливи като низове като аргументи между методите.
Трябва да се върнете и да го погледнете, ако още не сте го прочели.
На този етап би трябвало да можете да направите някои основни конзолни приложения, като викторини, приложения, които съхраняват данни или калкулатори.
В част втора ще станем малко по-амбициозни, обхващайки още някои основи - като бримки - и проучваме как да създаваме и взаимодействаме с класове. Това означава, че ще бъдем в състояние да започнем да пробиваме в Android разработката и да видим как да преодолеем тази разлика. Продължете да четете, ако искате наистина да научите C #!
Разбиране на класове и обектно ориентирано програмиране
Накратко в първа част обяснихме основите на обектно-ориентираното програмиране, което се върти около езици, използвайки „класове“ за описване на „обекти“. Обектът е част от данните, която може да представлява много неща. Това може да бъде буквален обект в игровия свят като пролет или може да е нещо по-абстрактно, като мениджър, който обработва резултата на играча.
Един клас може да създаде множество обекти. Така че може да напишете един „враг“ клас, но да бъдете в състояние да генерирате цяло ниво, пълно с лоши момчета. Това е едно от големите предимства на използването на обектно ориентирано програмиране. В противен случай единственият начин да се справите с поведението на множество врагове би било използването на много индивидуални методи, всеки от които съдържа инструкции как трябва да се държи лошият човек при различни обстоятелства.
Ако това все още е малко сложно, за да заобиколите главата си, всичко, което наистина трябва да знаете, е, че обектите имат свойства и поведение. Това е точно като истински обекти. Например, заекът има свойства като размер, цвят и име; и има поведения, като скачане, седене и хранене. По същество свойствата са променливи, а поведението е метод.
Програмата, която изградихме в последния урок, е пример и за клас. „Обектът“, който описваме тук, е някаква система за контрол на паролата. Свойството, което има, е низът UserName, а поведението, което има, е NewMethod (проверява името на потребителя и ги поздравява).
Ако това евсе още малко объркващо, единственият начин да заобиколим главата си е да създадем нов клас или два сами!
Създаване на нов клас
Ако ще научите C #, трябва да знаете как да правите нови класове. За щастие това е много лесно. Просто щракнете върху елемента от менюто Project и след това изберете „+ Add Class.“
Изберете „C #“ и го наречете „Заек“. Ще използваме този клас за създаване на концептуални зайци. След миг ще видите какво имам предвид
Ако влезете в своя Explorer Explorer вдясно, ще видите, че точно под Program.cs е създаден нов файл, наречен Rabbit.cs. Добре направено - това е едно от най-важните неща, които трябва да знаете, ако искате да научите C # за Android!
Новият файл Rabbit.cs има някои от същия този код на котлона като преди. Тя все още принадлежи към същото пространство на имена и има клас със същото име като файла.
пространство за имена ConsoleApp2 {class Rabbit {}}
Сега ще дадем на нашия заек някои свойства с това, което наричаме „конструктор“.
Конструктор е метод в клас, който инициализира обекта, като ни позволява да определим неговите свойства, когато за първи път го създадем. В този случай ето какво ще кажем:
пространство на имена ConsoleApp2 {class Rabbit {обществен низ RabbitName; публичен низ RabbitColor; public int RabbitAge; public int RabbitWeight; обществен заек (име на струна, цвят на струната, възраст на инт, тегло на инта) {RabbitName = име; RabbitColor = цвят; RabbitAge = възраст; RabbitWeight = тегло; }}}
Това ни позволява да създадем нов заек от различен клас и да определим свойствата му както ние:
Заешки заек1 = нов заек („Джеф“, „кафяв“, 1, 1);
Сега осъзнавам, че в ретроспективна тежест вероятно е трябвало да е поплавък или двойник, за да позволяват десетични знаци, но разбирате. Ще заобиколим заека си до най-близкото цяло число.
Ще видите, докато изписвате заека си, ще бъдете подканени да предадете правилните аргументи. По този начин класът ви почти се е превърнал в част от кода.
Вярвате или не, този код е създал заек! Не можете да видите вашия заек, защото нямаме графика, но е там.
И за да го докажете, сега можете да използвате този ред:
Console.WriteLine (Rabbit1.RabbitName);
След това ще ви каже името на заека, който току-що сте създали!
Можем също така да увеличим теглото на нашия Заек, така:
Rabbit1.RabbitWeight ++; Console.WriteLine (Rabbit1.RabbitName + "тежи" + Rabbit1.RabbitWeight + "kg");
Имайте предвид, че добавянето на „++“ в края на нещо ще увеличи постепенно стойността му с едно (Можете също така да напишете „RabbitWeight = RabbitWeight + 1“).
Тъй като нашият клас може да направи толкова зайци, колкото ни харесва, можем да създадем много различни зайци, всеки със собствени свойства.
Добавяне на поведение
Тогава може и да изберем да дадем на заека си някакво поведение. В този случай нека ги оставим да ядат
За да направим това, ние ще създадем публичен метод, наречен "Яжте", и това би издавало звук на хранене, като същевременно увеличава теглото на заека:
обществена невалидност Eat () {Console.WriteLine (RabbitName + ": Nibble nibble!"); RabbitWeight ++; }
Не забравяйте, че „public“ означава достъпно извън класа, а „void“ означава, че методът не връща никакви данни.
След това, от Program.cs, ние ще можем да наречем този метод и това ще накара заека по наш избор да се храни и да стане по-голям:
Console.WriteLine (Rabbit1.RabbitName + "тежи" + Rabbit1.RabbitWeight + "kg"); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit1.Eat (); Console.WriteLine (Rabbit1.RabbitName + "тежи" + Rabbit1.RabbitWeight + "kg");
Това ще накара Джеф да яде три пъти, тогава ще го чуем и ще можем да видим, че е станал по-голям! Ако имахме друг заек на сцената, те също биха могли да се хранят!
Console.WriteLine (Rabbit1.RabbitName + "тежи" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "тежи" + Rabbit2.RabbitWeight + "kg"); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit2.Eat (); Rabbit2.Eat (); Rabbit1.Eat (); Console.WriteLine (Rabbit1.RabbitName + "тежи" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "тежи" + Rabbit2.RabbitWeight + "kg");
На него като зайци
Това не е особено елегантен начин да боравим с много предмети, тъй като трябва да изписваме командите за всеки заек ръчно и не можем динамично да увеличаваме броя зайци, доколкото искаме. Ние не искаме просто да научим C # - искаме да научим как да пишем чист C # код!
Ето защо може да използваме списък. Списък е колекция; самата променлива, която основно съдържа препратки към други променливи. В този случай може да направим списък на Зайци и добрата новина е, че това е много лесно да се разбере:
списък Това създава новия заек както преди, но едновременно добавя заека в списъка. Също така бихме могли да кажем това: Rabbit Rabbit3 = нов заек („Джони“, „оранжев“, 1, 1); RabbitList.Add (Rabbit3); Така или иначе, обект е създаден и добавен към списъка. Също така можем удобно и елегантно да върнем информация от нашия списък на зайци по този начин: foreach (var Rabbit in RabbitList) {Console.WriteLine (Rabbit.RabbitName + "тежи" + Rabbit.RabbitWeight + "kg"); } Както може да успеете да разберете, „foreach“ означава да повторите стъпка веднъж за всеки елемент от списъка. Можете също да извлечете информация от списъка си по този начин: RabbitList.Eat (); Тук „1“ е индексът, което означава, че се отнасяте до информацията, съхранявана в позиция първа. Както се случва, това е всъщност втори заек, който сте добавили все пак: защото списъците в програмирането винаги започват от 0. В случай, че още не сте се досетили, сега ще използваме цялата тази информация за създаване на последователност на Фибоначи. В крайна сметка, ако изучавате C # за Android, всъщност трябва да можете да направите нещо интересно с цялата тази теория! Фибоначи
В последователността на Фибоначи зайци се затварят в стая и се оставят да се размножават. Те могат да се размножават след един месец, в този момент са полово зрели (не мога да потвърдя дали това е правилна биология на заека). Ако всяка заешка двойка може да произвежда веднъж месечно от тогава нататък, като произвежда две потомства, ето как изглежда последователността:
1,1,2,3,5,8,13,21,34
По магически начин всяко число в последователността е стойността на предходните две числа, добавени заедно. Според науката това е нещо много.
Готиното е, че можем да повторим това.
Първо, трябва да въведем нова концепция: цикъла. Това просто повтаря един и същ код отново и отново, докато не бъде изпълнено условие. Цикълът "за" ни позволява да направим това чрез създаване на променлива, задаване на условията, които искаме да изпълним, и след това да работим върху нея - всички дефинирани в скобите:
за (int months = 0; месеци <100; месеци ++) {// Направете нещо}
Така че създаваме цяло число, наречено месеци, и циклираме, докато е равно на 100. Тогава увеличаваме броя на месеците с едно.
Искате ли да видите как това може да стане последователност на Фибоначи? Ето:
пространство от имена ConsoleApp2 {class Program {static void Main (string args) {Списък Добре, това беше по-трудно, отколкото си мислех! Няма да преживявам всичко това, но използвайки това, което вече сте научили, трябва да можете да го промените. Определено има по-елегантни начини за това - не съм математик. Но мисля, че е доста забавно упражнение и след като го направите, вие сте готови за голямото време. Между другото бих искал да видя други подходи! С цялото това знание под колана си, вие сте готови да започнете с по-големи неща. По-специално, вие сте готови да вземете пробив в Android програмиране с C # в Xamarin или Unity.От тук накъде? Как да научите C # за Android
Това е различно, защото ще използвате класове, предоставени от Google, Microsoft и Unity. Когато напишете нещо като „RigidBody2D.velocity“, това, което правите, е достъп до собственост от клас Наречен RigidBody2D. Това работи точно така, единствената разлика е, че не можете да видите RigidBody2D, защото не сте го изградили сами.
С този C # под колана си, трябва да сте готови да скочите в някоя от тези опции и да имате голям старт, когато става въпрос за разбиране какво се случва:
- Как да направите приложение за Android с Xamarin
- Създайте своята първа Android игра за 7 минути с Unity
В предстоящия урок ще разгледаме и как можете да направите обрат и да използвате това за създаване на приложения за Windows вместо това!