Androidで出てくるJavaの機能 (3/5)
作成:2011-01-07 09:15
更新:2011-01-07 09:20
更新:2011-01-07 09:20
■パッケージ
さて、更に進みましょう。ここまではActivityを継承したクラスの話でしたが、実を言えばAndroidのプログラムは、クラスだけで成り立っているわけではありません。ソースコード全体を眺めてみると、下のリストのような形になっているはずです。
クラスの前にいろいろと書いてありますね? これは、「パッケージ」と「インポート」というものなのです。これまた、Android開発には重要なものです。
まず、一番最初にある「package 〜」という部分です。これは「パッケージ」というものの指定です。パッケージというのは、平たくいえば、「クラスを、フォルダのようなもので整理する機能」です。例えば、
Javaでは、標準でたくさんのクラスが付いてきます。もし、それが全部同じ場所にずらっとあったら、大変です。例えば、1つのフォルダの中に数千ものファイルが入っている状態を想像してください。大変でしょう? そもそも、何がどういう働きのためのものかすらわかりませんね。
そこで、クラスをフォルダ分けして整理するのに「パッケージ」という考え方が導入されたのです。AndroidのAPIにあるたくさんのクラスもすべてその役割ごとにフォルダ分けしてパッケージにまとめられています。自分でプログラムを作るときも、やっぱりパッケージを自分で指定して、そこに配置するのが基本です。
「面倒くさいから、パッケージなんていいや」とは、いかないのです。Javaのクラスでは、一応パッケージなしのプログラムも作れますが、Androidではダメです。
実は、Androidでは、アプリをパッケージで識別しているのです。例えば、自分がjp.tuyano.myappというパッケージに「MyApp」というアプリのクラスを作ったとしましょう(当然、MyAppはActivityを継承してあるとします)。アプリを起動すると、このMyAppが実行されます。すると、なんとなく「自分は、MyAppっていう名前のアプリを作ったんだ」と思ってしまいがちです。
が、Androidのシステムは、そうは考えてくれません。これは「jp.tuyano.myapp」というプログラムだ、と認識するのです。もちろん、アプリ名でjp.tuyano.myappなんて表示されてもなんだかわかりませんから、アプリの名前などは基本的に「MyApp」となります。
が、例えばAndroidマーケットにアプリを登録するとき、「MyApp」ではなく「jp.tuyano.myapp」というパッケージ名がプログラムのID代わりになります。
クラス名は、たまたま同じ名前のものがあったりすることも多々あります。ですから、クラス名でプログラムを識別するのは危険なのです。各プログラムはパッケージで識別し、その中で必要に応じてこのクラスを呼び出す――というように考えられているのですね。
クラスの前にいろいろと書いてありますね? これは、「パッケージ」と「インポート」というものなのです。これまた、Android開発には重要なものです。
まず、一番最初にある「package 〜」という部分です。これは「パッケージ」というものの指定です。パッケージというのは、平たくいえば、「クラスを、フォルダのようなもので整理する機能」です。例えば、
package jp.tuyano.myapp;こんな具合に書いてあったとすると、それは「このクラスが、jpフォルダの中のtuyanoフォルダの中のmyappフォルダの中に用意される」ということを示しているのです。こんな具合に、パッケージではドットを使って階層を書いていきます。
Javaでは、標準でたくさんのクラスが付いてきます。もし、それが全部同じ場所にずらっとあったら、大変です。例えば、1つのフォルダの中に数千ものファイルが入っている状態を想像してください。大変でしょう? そもそも、何がどういう働きのためのものかすらわかりませんね。
そこで、クラスをフォルダ分けして整理するのに「パッケージ」という考え方が導入されたのです。AndroidのAPIにあるたくさんのクラスもすべてその役割ごとにフォルダ分けしてパッケージにまとめられています。自分でプログラムを作るときも、やっぱりパッケージを自分で指定して、そこに配置するのが基本です。
「面倒くさいから、パッケージなんていいや」とは、いかないのです。Javaのクラスでは、一応パッケージなしのプログラムも作れますが、Androidではダメです。
実は、Androidでは、アプリをパッケージで識別しているのです。例えば、自分がjp.tuyano.myappというパッケージに「MyApp」というアプリのクラスを作ったとしましょう(当然、MyAppはActivityを継承してあるとします)。アプリを起動すると、このMyAppが実行されます。すると、なんとなく「自分は、MyAppっていう名前のアプリを作ったんだ」と思ってしまいがちです。
が、Androidのシステムは、そうは考えてくれません。これは「jp.tuyano.myapp」というプログラムだ、と認識するのです。もちろん、アプリ名でjp.tuyano.myappなんて表示されてもなんだかわかりませんから、アプリの名前などは基本的に「MyApp」となります。
が、例えばAndroidマーケットにアプリを登録するとき、「MyApp」ではなく「jp.tuyano.myapp」というパッケージ名がプログラムのID代わりになります。
クラス名は、たまたま同じ名前のものがあったりすることも多々あります。ですから、クラス名でプログラムを識別するのは危険なのです。各プログラムはパッケージで識別し、その中で必要に応じてこのクラスを呼び出す――というように考えられているのですね。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※Androidの基本形(3) package ……なにか書いてある……; import android.app.Activity; import android.os.Bundle; import ……他にもいろいろ書いてある…… public class クラス名 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { ……いろいろ書いてある…… } }
※関連コンテンツ