Изучение C # для Android, часть 2: классы и циклы
В первой части этой серии руководств по Android, посвященных изучению C #, мы рассмотрели абсолютные основы программирования на C #. Мы рассмотрели методы (группы кода, выполняющие определенные задачи), некоторый базовый синтаксис (например, необходимость в точках с запятой), переменные (контейнеры, в которых хранятся данные) и «операторы if» для управления потоком (код ветвления, который зависит от значений переменных). Мы также увидели, как передавать переменные, такие как строки, в качестве аргументов между методами.
Вам следует вернуться и взглянуть на это, если вы еще не читали.
На этом этапе вы должны уметь создавать некоторые базовые консольные приложения, такие как викторины, приложения для хранения данных или калькуляторы.
Во второй части мы собираемся стать немного более амбициозными, рассмотрев еще несколько основ – например, циклы – и исследуя, как создавать классы и взаимодействовать с ними. Это означает, что мы сможем начать разработку Android и посмотреть, как преодолеть этот пробел. Продолжайте читать, если хотите по-настоящему изучить C #!
Понимание классов и объектно-ориентированного программирования
Вкратце в первой части мы объяснили основы объектно-ориентированного программирования, которое вращается вокруг языков, использующих «классы» для описания «объектов». Объект – это часть данных, которая может представлять множество вещей. Это может быть буквальный объект в игровом мире, например пружина, или что-то более абстрактное, например менеджер, который обрабатывает счет игрока.
Один класс может создавать несколько объектов. Таким образом, вы можете написать один класс «врага», но у вас будет возможность создать целый уровень, полный плохих парней. Это одно из больших преимуществ объектно-ориентированного программирования. В противном случае единственный способ справиться с поведением множества врагов – это использовать множество отдельных методов, каждый из которых содержит инструкции о том, как плохой парень должен вести себя в различных обстоятельствах.
Если это все еще немного сложно понять, все, что вам действительно нужно знать, – это то, что у объектов есть свойства и поведение. Это похоже на настоящие предметы. Например, у кролика есть такие свойства, как размер, цвет и имя; и у него есть такие поведения, как прыжки, сидение и еда. По сути, свойства – это переменные, а поведение – это методы.
Программа, которую мы создали на прошлом уроке, тоже является примером класса. «Объект», который мы здесь описываем, – это своего рода система контроля паролей. Его свойство – строка UserName, а его поведение – NewMethod (проверка имени пользователя и его приветствие).
Если это все еще немного сбивает с толку, единственный способ разобраться – создать один или два новых класса самостоятельно!
Создание нового класса
Если вы собираетесь изучать C #, вам нужно знать, как создавать новые классы. К счастью, это очень просто. Просто щелкните пункт меню «Проект» и выберите «+ Добавить класс».
Выберите «C #» и назовите его «Rabbit». Мы собираемся использовать этот класс для создания концептуальных кроликов. Вы поймете, что я имею в виду, через мгновение.
Если вы посмотрите в обозревателе решений справа, вы увидите, что новый файл Rabbit.cs был создан прямо под Program.cs. Молодец – это одна из самых важных вещей, которые нужно знать, если вы хотите изучать C # для Android!
Новый файл Rabbit.cs имеет тот же «шаблонный» код, что и раньше. Он по-прежнему принадлежит к тому же пространству имен и имеет класс с тем же именем, что и файл.
namespace
Теперь мы собираемся дать нашему кролику некоторые свойства с помощью того, что мы называем «конструктором».
Конструктор – это метод в классе, который инициализирует объект, позволяя нам определять его свойства при его первом создании. В этом случае мы собираемся сказать следующее:
namespace
Это позволяет нам создать нового кролика из другого класса и определить его свойства, как это делаем мы:
Кролик Кролик1 = новый Кролик («Джефф», «коричневый», 1, 1);
Теперь я понимаю, что в ретроспективе вес, вероятно, должен был быть плавающим или двойным, чтобы учесть десятичные дроби, но вы уловили идею. Мы собираемся округлить нашего кролика до ближайшего целого числа.
Когда вы напишете своего кролика, вы увидите, что вам будет предложено передать правильные аргументы. Таким образом, ваш класс стал почти частью кода.
Вы не поверите, но этот код создал кролика! Вы не можете увидеть своего кролика, потому что у нас нет графики, но она есть.
И чтобы доказать это, теперь вы можете использовать эту строку:
Console.WriteLine(Rabbit1.RabbitName);
После этого вы увидите имя только что созданного кролика!
Мы также можем увеличить вес нашего Кролика, вот так:
Rabbit1.RabbitWeight++;
Console.WriteLine(Rabbit1.RabbitName +
Обратите внимание, что добавление «++» в конце чего-либо будет постепенно увеличивать его значение на единицу (вы также можете написать «RabbitWeight = RabbitWeight + 1»).
Поскольку наш класс может создавать сколько угодно кроликов, мы можем создавать множество разных кроликов, каждый со своими свойствами.
Добавление поведения
Тогда мы также можем захотеть дать нашему кролику какое-то поведение. В таком случае дайте им поесть.
Для этого мы создадим общедоступный метод под названием «Eat», который будет издавать звук еды, а также постепенно увеличивать вес кролика:
public void Eat()
Помните, что «общедоступный» означает доступный извне класса, а «void» означает, что метод не возвращает никаких данных.
Затем изнутри Program.cs мы сможем вызвать этот метод, и это заставит выбранного нами кролика поесть и стать больше:
Console.WriteLine(Rabbit1.RabbitName +
Это заставит Джеффа съесть три раза, тогда мы услышим это и увидим, что он стал больше! Если бы у нас был еще один кролик, они тоже могли бы есть!
Console.WriteLine(Rabbit1.RabbitName +
На это как кролики
Это не особенно элегантный способ обработки большого количества объектов, поскольку нам нужно писать команды для каждого кролика вручную и мы не можем динамически увеличивать количество кроликов настолько, насколько мы хотим. Мы не просто хотим изучать C # – мы хотим научиться писать чистый код на C #!
Вот почему мы можем использовать список. Список – это собрание; Сама переменная, которая в основном содержит ссылки на другие переменные. В этом случае мы могли бы составить список кроликов, и хорошая новость заключается в том, что это очень легко понять:
List
Это создает нового кролика, как и раньше, но одновременно добавляет кролика в список. Точно так же мы могли бы сказать следующее:
Rabbit Rabbit3 =
В любом случае объект был создан и добавлен в список.
Мы также можем удобно и элегантно вернуть информацию из нашего списка кроликов следующим образом:
foreach
Как вы могли догадаться, «foreach» означает, что вы повторяете шаг один раз для каждого элемента в списке. Вы также можете получить информацию из своего списка следующим образом:
RabbitList
Здесь «1» – это индекс, означающий, что вы имеете в виду информацию, хранящуюся в первой позиции. Как оказалось, это на самом деле второй кролик, которого вы добавили: потому что списки в программировании всегда начинаются с 0.
Фибоначчи
Если вы еще не догадались, теперь мы собираемся использовать всю эту информацию для создания последовательности Фибоначчи. В конце концов, если вы изучаете C # для Android, вы должны уметь делать что-то интересное со всей этой теорией!
В последовательности Фибоначчи кроликов запирают в комнате и оставляют для размножения. Они могут воспроизводиться через один месяц, после чего становятся половозрелыми (я не могу подтвердить, правильно ли это биология кроликов). Если с этого момента каждая пара кроликов может производить один раз в месяц, производя по два потомства, вот как выглядит последовательность:
1,1,2,3,5,8,13,21,34
По волшебству каждое число в последовательности – это значение двух предыдущих чисел, сложенных вместе. Согласно науке, это большое дело.
Круто то, что мы можем это воспроизвести.
Во-первых, нам нужно представить новую концепцию: цикл. Это просто повторяет один и тот же код снова и снова, пока не будет выполнено условие. Цикл «for» позволяет нам делать это, создавая переменную, задавая условия, которым мы хотим соответствовать, и затем работая с ней – все это определено в скобках:
for
Итак, мы создаем целое число, называемое месяцами, и выполняем цикл, пока оно не станет равным 100. Затем мы увеличиваем количество месяцев на единицу.
Хотите увидеть, как это может стать последовательностью Фибоначчи? Вот:
namespace
Ладно, это было сложнее, чем я думал!
Я не собираюсь описывать все это, но, используя то, что вы уже узнали, вы сможете реконструировать это.
Определенно есть более элегантные способы сделать это – я не математик. Тем не менее, я думаю, что это довольно забавное упражнение, и как только вы сможете его выполнить, вы будете готовы к большому успеху.
Кстати, я бы хотел увидеть любые другие подходы!
Куда мы отправимся отсюда? Как изучить C # для Android
Обладая всеми этими знаниями, вы готовы приступить к большему. В частности, вы готовы заняться программированием для Android с помощью C # в Xamarin или Unity.
Это другое дело, потому что вы будете использовать классы, предоставленные Google, Microsoft и Unity. Когда вы пишете что – то вроде «RigidBody2D.velocity», что вы делаете, доступ к свойству из класса под названием RigidBody2D. Это работает точно так же, с той лишь разницей, что вы не видите RigidBody2D, потому что вы не создали его сами.
Имея за плечами этот C #, вы должны быть готовы перейти к любому из этих вариантов и иметь большую фору, когда дело доходит до понимания того, что происходит:
- Как создать приложение для Android с Xamarin
- Создайте свою самую первую игру для Android за 7 минут с Unity
В следующем уроке мы также рассмотрим, как вы можете развернуться и использовать его для создания приложений для Windows!
Источник записи: https://www.androidauthority.com