Android向けC#を学ぶパート2:クラスとループ

著者: John Stephens
作成日: 24 1月 2021
更新日: 1 J 2024
Anonim
初心者のためのAndroid開発-フルコース
ビデオ: 初心者のためのAndroid開発-フルコース

コンテンツ


C#の学習に関するこのAndroidチュートリアルシリーズの第1部では、C#プログラミングの絶対的な基礎を見ました。メソッド(特定のタスクを実行するコードのグループ)、いくつかの基本的な構文(セミコロンの必要性など)、変数(データを格納するコンテナー)、およびフロー制御の「ifステートメント」(値に依存する分岐コード)変数の)。また、メソッド間の引数として文字列のような変数を渡す方法も見ました。

まだ読んでいない場合は、戻って確認してください。

この時点で、クイズ、データを保存するアプリ、電卓など、いくつかの基本的なコンソールアプリを作成できるはずです。

パート2では、もう少し野心的で、ループなどの基本をいくつか取り上げ、クラスを作成して対話する方法を探っていきます。つまり、Androidの開発に取り組み、そのギャップを埋める方法を確認できるようになるということです。本当にC#を学びたいのであれば、読み続けてください!

クラスとオブジェクト指向プログラミングを理解する

第1部では、「クラス」を使用して「オブジェクト」を記述する言語を中心にしたオブジェクト指向プログラミングの基本について簡単に説明しました。オブジェクトは、多くのことを表すことができるデータです。春のようなゲーム世界の文字通りのオブジェクトでも、プレーヤーのスコアを処理するマネージャーのような、より抽象的なものでもかまいません。

1つのクラスで複数のオブジェクトを作成できます。したがって、1つの「敵」クラスを作成しても、悪者でいっぱいのレベル全体を生成できる可能性があります。これは、オブジェクト指向プログラミングを使用する大きな利点の1つです。それ以外の場合、多数の敵の振る舞いを処理する唯一の方法は、多くの個別のメソッドを使用することです。各メソッドには、さまざまな状況での悪人の振る舞いに関する指示が含まれています。


それでも頭を悩ませるのが少し難しい場合は、オブジェクトにプロパティと動作があることを知っておく必要があります。これは実際のオブジェクトと同じです。たとえば、ウサギにはサイズ、色、名前などのプロパティがあります。また、ジャンプ、座っている、食べるなどの行動があります。基本的に、プロパティは変数であり、動作はメソッドです。

前回のレッスンで作成したプログラムもクラスの例です。ここで説明する「オブジェクト」は、ある種のパスワード制御システムです。含まれるプロパティは文字列UserNameであり、その振る舞いはNewMethod(ユーザーの名前を確認して挨拶する)です。

もしそうならまだ 少しわかりにくいですが、頭を動かす唯一の方法は、新しいクラスを1つまたは2つ作成することです!

新しいクラスを作成する

C#を学習する場合は、新しいクラスを作成する方法を知る必要があります。幸いなことに、これは非常に簡単です。 [プロジェクト]メニュー項目をクリックし、[+クラスの追加]を選択します。

「C#」を選択して「Rabbit」と呼びます。このクラスを使用して、概念的なウサギを作成します。すぐに意味がわかります。

右側のソリューションエクスプローラーをチェックインすると、Rabbit.csという新しいファイルがProgram.csのすぐ下に作成されていることがわかります。これは、Android向けのC#を学びたいかどうかを知るための最も重要なことの1つです。

新しいRabbit.csファイルには、以前と同じ「定型」コードの一部が含まれています。まだ同じ名前空間に属し、ファイルと同じ名前のクラスがあります。


名前空間ConsoleApp2 {クラスウサギ{}}

今、私たちはうさぎに「コンストラクター」と呼ぶものをいくつか与えます。

コンストラクターは、オブジェクトを初期化するクラス内のメソッドであり、最初に作成したときにそのプロパティを定義できます。この場合、次のように言います。

名前空間ConsoleApp2 {クラスRabbit {パブリック文字列RabbitName;パブリック文字列RabbitColor; public int RabbitAge; public int RabbitWeight; public Rabbit(文字列名、文字列の色、int age、int weight){RabbitName = name; RabbitColor = color; RabbitAge = age; RabbitWeight =重量; }}}

これにより、異なるクラスから新しいウサギを作成し、そのプロパティを定義できます。

Rabbit Rabbit1 = new Rabbit(“ Jeff”、“ brown”、1、1);

今、私は振り返ってみると、おそらく小数を考慮して浮動小数点数または倍数である必要がありますが、あなたはアイデアを得る。ウサギを最も近い整数に丸めます。

ウサギを書くと、正しい引数を渡すように求められます。このようにして、クラスはほとんどコードの一部になりました。

信じられないかもしれませんが、このコードはウサギを作成しました!私たちはグラフィックを持っていないので、ウサギを見ることができませんが、それはそこにあります。

それを証明するために、次の行を使用できます。

Console.WriteLine(Rabbit1.RabbitName);

これで、作成したウサギの名前がわかります!

同様に、次のようにウサギの体重を増やすことができます。

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

ここで、何かの最後に「++」を追加すると、値が1ずつ増加します(「RabbitWeight = RabbitWeight + 1」と書くこともできます)。

私たちのクラスは好きなだけウサギを作ることができるので、それぞれ独自のプロパティを持つたくさんの異なるウサギを作成できます。

ビヘイビアを追加する

次に、ウサギに何らかの行動を与えることも選択できます。この場合、彼らに食べさせましょう。

これを行うには、「食べる」と呼ばれるパブリックメソッドを作成します。これにより、うさぎの体重が徐々に増加すると同時に、食べる音が聞こえます。

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

「public」はクラスの外部からアクセスできることを意味し、「void」はメソッドがデータを返さないことを意味します。

次に、Program.cs内からこのメソッドを呼び出すことができます。これにより、選択したウサギが食べて大きくなります。

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

これにより、ジェフは3回食べることになり、それを聞いて、ジェフが大きくなったことを確認できます。シーンに別のウサギがいたら、彼らも食べることができます!

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

うさぎのように

これは、各ウサギのコマンドを手動で記述する必要があり、必要な限りウサギの数を動的に増やすことができないため、多くのオブジェクトを処理するための特にエレガントな方法ではありません。 C#を学ぶだけではなく、きれいなC#コードの書き方を学びたいです!

これがリストを使用する理由です。リストはコレクションです。基本的に他の変数への参照を含む変数自体。この場合、ウサギのリストを作成できますが、これは非常に理解しやすいことです。

リスト RabbitList =新しいリスト(); RabbitList.Add(new Rabbit( "Jeff"、 "brown"、1、1)); RabbitList.Add(new Rabbit( "Sam"、 "white"、1、2));

これにより、以前と同じように新しいウサギが作成されますが、同時にリストにウサギが追加されます。同様に、私たちはこれを言うことができます:

Rabbit Rabbit3 = new Rabbit( "Jonny"、 "orange"、1、1); RabbitList.Add(Rabbit3);

いずれにせよ、オブジェクトが作成され、リストに追加されました。

このようにして、ウサギのリストから情報を便利かつエレガントに返すこともできます。

foreach(RabbitListの変数Rabbit){Console.WriteLine(Rabbit.RabbitName + "weighs" + Rabbit.RabbitWeight + "kg"); }

理解できるかもしれませんが、「foreach」とは、リスト内のすべてのアイテムに対して1回ずつステップを繰り返すことを意味します。リストから次のような情報を取得することもできます。

RabbitList.Eat();

ここで、「1」はインデックスです。つまり、位置1に格納されている情報を参照しています。それが起こると、それは実際に 第二 あなたが追加したウサギ:プログラミングのリストは常に0から始まるため。

フィボナッチ

まだ推測していない場合は、このすべての情報を使用してフィボナッチ数列を作成します。結局のところ、Android向けのC#を学んでいるのであれば、その理論を使って実際に何か面白いことをできるはずです!

フィボナッチ数列では、ウサギは部屋に閉じ込められ、繁殖させられます。彼らは1ヶ月後に生殖することができ、その時点で性的に成熟しています(これが正しいウサギの生物学かどうかは確認できません)。各ウサギのカップルがそれ以降1か月に1回生産し、2つの子孫を生産できる場合、シーケンスは次のようになります。

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

魔法のように、シーケンスの各数値は、前の2つの数値を加算した値です。科学によると、これは大したことではありません。

クールなのは、それを再現できることです。

最初に、ループという新しい概念を導入する必要があります。これは、条件が満たされるまで同じコードを何度も繰り返します。 「for」ループを使用すると、変数を作成し、満たす条件を設定し、それを操作することでこれを行うことができます。すべて括弧内に定義されています。

for(int months = 0; months <100; months ++){//何かをする}

したがって、月と呼ばれる整数を作成し、100になるまでループします。その後、月の数を1つ増やします。

これがどのようにフィボナッチ数列になり得るかを見たいですか?見よ:

名前空間ConsoleApp2 {クラスProgram {static void Main(string args){List RabbitList =新しいリスト(); RabbitList.Add(new Rabbit( "Jeff"、 "brown"、0、1)); RabbitList.Add(new Rabbit( "Sam"、 "white"、0、1)); for(int months = 0; months <10; months ++){int firstRabbit = 0; int timesToReproduce = 0; foreach(RabbitListのvar Rabbit){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(new Rabbit( "NewBabyRabbit"、 "brown"、0、1)); Console.Write( "r"); Console.Write( "r"); } Console.WriteLine( "---があります" + RabbitList.Count / 2 + "ウサギのペア!"); Console.WriteLine( ""); } Console.WriteLine( "All done!"); Console.ReadKey(); }}}

さて、それは思ったよりも大変でした!

このすべてを説明するつもりはありませんが、すでに学んだことを使用して、リバースエンジニアリングできるようにする必要があります。

これを行うためのよりエレガントな方法は間違いなくあります。私は数学者ではありません。しかし、私はそれはかなり楽しい運動だと思うし、一度それを行うことができれば、あなたは大いなる時間の準備ができています。

ちなみに、他のアプローチも見たいです!

ここからどこにいきますか? Android向けC#の学習方法

これらすべての知識を身に付ければ、より大きなことから始める準備が整います。特に、XamarinまたはUnityでC#を使用してAndroidプログラミングを試す準備ができました。

Google、Microsoft、Unityが提供するクラスを使用するため、これは異なります。 「RigidBody2D.velocity」のようなものを書くとき、あなたがしていることはクラスからプロパティにアクセスすることです 呼ばれた RigidBody2D。これはまったく同じように動作しますが、RigidBody2Dを自分で作成しなかったため、RigidBody2Dが見えないという唯一の違いがあります。

このC#を身に付ければ、これらのオプションのいずれかにジャンプして、何が起こっているのかを理解する上で大きなスタートを切る準備ができているはずです。

  • XamarinでAndroidアプリを作成する方法
  • Unityで7分で最初のAndroidゲームを構築

今後のレッスンでは、Uターンを行い、これを使用してWindowsアプリを構築する方法についても説明します。

新たなリークにより、amung Galaxy 10シリーズの欧州価格設定が明らかになりました。サムスンの旗艦は749ユーロから1,499ユーロまでと言われています。最新のリークでは、12GB / 1TB Galaxy 10 Pluモデルの計画も繰り返し述べています。amung Galaxy 10の発売は1か月もかからず、リークは(当然のことながら)回復しています。最新のリークにより、ヨーロッパの価...

今週初め、サムスンのGalaxy 10のディスプレイ内指紋センサーに重大なセキュリティ上の欠陥があることが明らかになりました。 Galaxy Note 10シリーズにも登場したこのバグにより、未登録の指紋を持つ人が電話のロックを解除することができます。による ロイター そして 太陽、英国のユーザーがサードパーティのスクリーンプロテクターをGalaxy 10に適用した後に、この問題が発生しました。彼...

私たちはあなたに求めることを助言します