Androidアプリを作ってみる #15 -クラスとは-

SurfaceViewを始める前に

その前にやることがある

前回、ゲームで画像を表示したりキャラクターを表示したりする場合は、AndroidのSurfaceViewと言うのを使うところまで分かりましたね。早速使いたいところですがその前に知っておかなければいけないことがあります。

SurfaceViewの話

Androidアプリを作ってみる #14 -Surfaceview?-

2016.11.15

Javaの基本くらいは押さえましょう

クラスって何?

今までも出てきていましたが、とりあえずスルーしてきました。でも、そろそろ避けては通れないところまで来てますね。

にゃんこ
こっちはやってもよかったんだぞ。
メリ
強気ね。

クラスって何なんでしょうかね。今までのプログラムの中にすでにあります。それを見てみましょう。

これが前回書いたコードですね。

プログラムを書く行為のことを「コーディング」って言ったりします。

この中でクラスという概念に当たるものは以下になります。。

この中の「public」と「extends AppCompatActivity」はとりあえず置いておきましょう。そんなの後回しです。それを取ってしまうならクラスってのはこんな形で書けることになりますね。

そもそもクラスってのは何なのかというと、何かを実行する時の「設計図」だと思ってください。ゲームでいうと主人公とか。それでこのクラス中にはその動かしたいものの行動とかを記述していけばいいってことです。

例を出すと

分かりやすい例でいくと。

Marioというクラスを作りました。外側の「Mario」がクラスでその中に各行動を書いたjump()bDash()walk()を記述しています(public Mario()は気にしないで)。

これが以前もちょっと出てきたメソッドと言われるものです。実際は各メソッドの{}の中にそれぞれの行動を実現する処理を書いていくことになります。ここではその中身まで書いてあることを前提にします。

Marioを使えるようにする

このままではまだMarioは「設計図」のままです。動くこともできません。そこで、その「設計図」の状態から「実体(インスタンス)」を作らないといけません。その方法が以下のようになります。

こうやるとクラスMarioの機能が使える「mario」と言うクラス変数が使えるようになります。例えばこのmarioをジャンプさせたければプログラム中に以下のようにすればいいのです。

クラス変数は、クラスMarioを入れる「箱」、そんな感じの理解でいいです。

いくつでも作れるよ

簡単ですね。あくまでクラス「Mario」は設計図なので、いくらでも同じものを作れます。

このnewした時(実体を作った時)に実行されるのが、さっき気にしないでと言ったpublic Mario()になります。ここはnewされる度に実行されるメソッド(コンストラクタと言う)ですが、ここには実体を作る時の初期化処理を記述します。例えば最初は「素のマリオです」とかね。

にゃんこ
マリオって書いちゃったよ。
メリ
やばくないのかしら。

ちなみに混同してしまうかもしれませんけど、上の例でいうとクラスMarioで作った実体はmariomario2があるので、Marioの機能を持った実体は二つ存在していています。そのことが今回の「クラスは設計図」であると言うことを端的に証明してますね(設計図から部品はいくらでも作れるということ)。

とりあえずざっくりと説明しましたが、クラスの概要はこんな感じです。でも、クラスにはまだまだいろいろな機能があります。それはまた今度。

メリ
分かったような分からないような。

次の記事

Androidアプリを作ってみる #16 -クラスの継承-

2016.12.03

前回の記事

Androidアプリを作ってみる #14 -Surfaceview?-

2016.11.15