![]() |
プロジェクトを複数のファイルに分割する |
入門書などにあるサンプルプログラムではシンプル過ぎて実用には苦しいです。
サンプルプログラムを実用化するためにさらに改良して機能を追加していきます。そうすると
行数が何百行を超えるのが普通です。 ソースコードが長くなって書いた本人させ分からなくなってきた。というのは よくある話です。ソフトの管理を知らないとこういうことが起こります。 1ファイルに長い行のコードが書かれているとスクロールに時間がかかり非効率 です。また、内容を把握するのが大変です。このようなときに有効なのが機能別の ファイルにしてそこにコードを記述する。ファイルがコンパクトになり見やすくなります。 アンドロイドの入門書では短いコードなのでファウル分割が記述されていないことが多い気がします。 アンドロイドではプロジェクトを複数のファイルから構成するには独特のクセがあります。 ![]() Empty Activityを選択して 名前を BigProjectにして プロジェクトを作成します。 ![]() お馴染みのHello world.の雛型が作成されます。 自前のクラスを新規作成してActivityMainから呼び出してみます。 ![]() ![]() プロジェクトをクリック Newをクリック Java Classをクリック ![]() 自前のクラス名(myClass)を入力してEnterキーを押します。 ファイルの拡張子javaは自動で付加されまのでjavaを入力しないでください。 myClass.javaが作成されました。またクラスmyClassも出来ています。 package net.sadaji.bigproject; public class myClass { }このままでは空っぽで何もできません。最低必要なコンストラクタとメソッドを作成します。 package net.sadaji.bigproject; public class myClass { //コンストラクタ何もなし public myClass(){} //適当に作ったメソッド public int add10(int a){ int b = a + 10; return b; } }コンストラクタはクラス名と同じ名前にします。クラスの初期化を記述 しますが、今回は何もしません。 メソッドは超簡単な例です。 return a + 10; と書けばいいのでは?とツッコミが入りそうですがあとでデバッグのときに 説明しやすいようにこうしました。 次にMainActivityです。一番シンプルになるように以下のようにしました。 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //自前のクラスを使う myClass mc = new myClass(); int c = mc.add10(3); Log.i("myClass", "result is " + String.valueOf(c)); } }myClassのインスタンスmcを作成してメソッドadd10(3)の値を取得 しています。 このようにしてクラスを複数のファイルに分けてプロジェクトを構成 することができます。 |