では、JAVAソースの中を見てみましょう。
①package jp.co.aicell;
②import android.app.Activity;
import android.os.Bundle;
③public class HelloAndroidActivity extends Activity {
/** Called when the activity is first created. */
④ @Override
⑤ public void onCreate(Bundle savedInstanceState) {
⑥ super.onCreate(savedInstanceState);
⑦ setContentView(R.layout.main);
}
}
①package:プロジェクト生成時に設定したパッケージ名称。「.」単位でフォルダーを作成しその中にJAVAソースを格納します。
②import:外部のクラスを使用する場合の定義。パッケージ名.クラス名で表します。どういったものがあるかは「Android developers」のリファレンスを参照してください。リファレンスをみると実にたくさんのクラスが定義されていることがわかると思います。どういったときにどういう外部クラスを使うのかについては、参考書等にあるサンプルソースから拾ったほうが早いと思います。
③public class:プログラム本文の始めです。クラス名はJAVAソース名と同じ名前でないといけません。extends(継承) とは、その次にあるActivityというクラスを元にして別のクラスを作りますという意味です。元になるクラスをスーパークラス、継承された別のクラスをサブクラスといいます。「継承」はJAVAのようなオブジェクト指向言語でのキモになりますので、私が理解できたら改めて説明したいと思います。
④@Override:オーバーライドとは、スーパークラスから継承されたサブクラスで、元のメソッドを書き換えますよ。という宣言です。ここでいうメソッドとはプログラムを構成しているひとつの関数というイメージです。
⑤Public void:「public」③でも登場したpublicですが、ここで説明させていただきます。このほかにprotected、privateと呼ばれるものがあります。これらのことをアクセス修飾子と言います。 参照先を制限するために宣言します。下記のような違いがあります。
・省略 同じパッケージ内からしか呼び出せない。
・private 同じクラス内からしか呼び出せないが、同じクラスから作られたオブジェクト同士
であれば、相互の private メンバーにアクセスできる。
・protected 同じパッケージか、そのサブクラスからしか呼び出せない。
・public どこからでも呼び出せる。
voidとは関数に戻り値がないことをあらわしています。戻り値があり場合にはその型を書きます。たとえば文字列を返す場合は「String」といった具合です。
onCreate(Bundle savedInstanceState)は、アンドロイド端末からアクションが起きた最初に動くメソッドで「android.app.Activity」の中にあります。
次の⑥の行にあるsuper.onCreate(savedInstanceState);まで、セットでandoroidプログラムでの決まり文句と思っていてください。ちなみにonCreateのパラメータ(Bundle savedInstanceState)のBundleは「android.os.Bundle」のクラスです。
⑥super.onCreate:ご想像していたと思いますが、スーパークラスのonCreateを実行しなさいということです。
⑦setContentView(R.layout.main):この1行で「Hello World,HelloAndroidActivity!」を端末に表示しています。setContentViewが画面表示をするクラスで(R.layout.main)がそのパラメータとなります。パラメータのないようについては、また、後ほど。
長くなりました。お疲れ様。
0 件のコメント:
コメントを投稿