基本の基本、クラスとメソッドとオブジェクトの判りにくい関係[androidアプリ開発]
ちょっと間が開いてしまいました。
これというのも全部モンハンのせいです(´・ω・`)
さて、今回はXMLで画面を作成するの第2回をやる前に、もうちょっとJavaの基本を見ていくことに。
画面作る前にプロジェクトのパッケージ構造を整理しだしたらなんだかどんどん画面作成から脱線してきた気もするけど。
前回のおさらい
strings.xml内で文字列変数”hello”と”app_name”に定義した文字列を
main.xmlで配置してアプリ名.javaで表示
っていうのが判ったので、次は実際に表示している部分を見てみることに。
public class Sample001Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
おなじみ、Androidプロジェクトを作成するとできるデフォルトのプロジェクトのjava。
@Overrideって?
「オーバーライドとはスーパークラスにおいて定義されているインスタンスメソッドを、サブクラス内で再定義することを言います。スーパークラスのメソッドを変更することはできないが、サブクラスに特化した機能を付与する必要がある場合などに使用します。」
って説明が書いてあった。
何言ってんのかさっぱりわかんねーよ!(´・ω・`)
スーパークラスは元になった親のクラスのことで、それを継承して新たに追加機能を付加したりするクラスを定義するのをオーバーライド(上書き)と呼ぶみたい。
上のソースでいうとSample001Activityクラスが親になるのかな?
onCreateはActivityが始まると最初に呼び出されるメソッド。すべてのクラスはこれにオーバーライドして進行していく。
ちなみにメソッドは「手続き」や「方法」のことらしい。そしてクラスは「設計図」とかよく言われるけどなんとなく判るようで判らないような(´・ω・`)
onCreateメソッドをオーバーライドする場合には、必ずスーパークラスのメソッドを呼び出す必要があるらしいので、
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
この部分はもう決まり文句みたいなもんだと覚えるしかない。
で、onCreateにsetContentViewを上書きしてmain.xmlの内容を表示しているということに。
うーん、判ったような判らないような、むしろぜんぜんワケが判らないよ(´・ω・`)
もっと親しみやすい、たとえば万人向けのエロワードに置き換えるとかしてみるとどうなるかな。
まずActivityは女の子。ビッチな。
「女の子」に「おっぱい」を実装したいので、新規で「おっぱいクラス」を定義(オーバーライド)。ここにはとうぜんカップサイズという「変数」が入ってる。そしてもちろん、「もむ」というメソッドも。
おいもうダメな予感しかしないぞ(´・ω・`)
カップサイズはいっぱいあるけど、BカップにしたいのでBを呼び出す。Bカップの揉み応えも「おっぱいクラス」には用意されている。なんて便利なクラスなの。
これで「Bカップの女の子」ができた。これがオブジェクト。
ということで、Bカップの女の子Activityちゃんが誕生。
javaの解説してるサイトは星の数ほどあるだろうけど、クラスを「おっぱい」にしたバカはきっとウチだけだと思う(´・ω・`)
一連の動作は、Activityが女性、クラスが男性として見てみるとわかりやすい気がした。
Activityちゃんは男をとっかえひっかえするビッチだけど、二股かけたりといった同時進行することはなくて、いちおう上書きで一人の男を乗り換えていく感じ。Activityマジでビッチ。
このエントリは読まなくてもいい気がするくらいバカなエントリ(´・ω・`)
コメント 0