趣味でアプリケーションが作れる趣味でアプリケーションが作れる

技術者に師事したことはないですが、ある意味プロフェシッショナルかもしれない楽々アート会(趣味で絵を描くサークル)会員の私が、ソフト制作初心者のために蘊蓄を語ります。趣味で絵を描く仲間のサークル楽々アート会のページでは、会員募集中~我々が描いた絵画作品のギャラリーもあります。

3.JAVAでプログラミング(1)

[コマンドを知る]

さて、前回「2.JAVAを使う」で、コンパイルしたkasan.javaですが、まぁ色々と模範的でないことは分かっています。でも制作の目的、そしてプログラミングの構造が解っている訳で、それぞれのコマンドが何をしているのか?は、想像できるだろうと思います。一応、本ページでも再掲↓しておきます。

[main] -- JAVAプログラムは、「public static void main(String[] args) {」で囲まれた部分をまず実行します。この実行コードのかたまり(メソッド)が“main”という名称だからです。逆に言えばkasanというプログラムにおいて、まず実行する内容はここに記載しなければならない、ってことです。
“void”は戻り値がないってこと、“(String[] args)” は が文字列で指定できます、ってこと。…まぁ戻り値とはそのコードの実行後に返す値で、引数はそのコードを実行する時に与える値(引数は変数args(別に他の変数名でも良い)の配列[0]から順に格納される)ってくらいで良いかと思います。

[package] [import] -- このプログラムにおいて初めにpackageを指定していますが、別にこの記述がなくてもプログラムはコンパイルできます。(但し前回の説明と異なって.classは移動させず、.mfファイルのMain-Class:も“kasan”としなければ動きません(.jar作成コマンドのtestpkg\も不要))…じゃあなんでこんな記述が?~規模が大きいプログラムになると煩雑さを避ける為にファイルも幾つかに分けることになります。その時、ある実行コードのかたまりから別の実行コードのかたまりを利用しようとアクセスするには2行目に書いたimportという記述が必要になるのです。この2行目自体はjavaがデフォルトで用意している機能(クラスライブラリ)を使うために呼び出しているのですが、同一パッケージならクラス名で呼び出せます。なのでこんな短いプログラムには不要な記述、となる訳です。同一パッケージの.javaファイルは、パッケージ名のディレクトリに分けて保存します。これもEclipseやらなら“workspace\(プロジェクト名)\src\(パッケージ名)”の中に自動的に格納してくれているという訳です。

[Scannerクラス(クラスライブラリ)] -- さて、そのimportで呼び出しているクラス、java.util.Scannerについて。Scannerは値を入力をさせるために呼び出す実行コードのかたまり(クラス)です(参考:Scannerクラス)。まずimportで指定したScannerの機能(クラス)をscannerという名称で引っ張ってくる(インスタンスにする)部分が、Scanner scanner = new Scanner(System.in);です。引数としてSystem.in(キーボードから入力する)を与えることで、Scannerクラスのインスタンス生成時にクラス呼び出しで(初期化やらが)まず実行されるように記述した部分(コンストラクタ)においてscannerのソースが標準入力(キーボード)であることが設定されます。そしてScannerに関する次の記述、i = scanner.nextLine();で、読み取ったキーボードの入力値が変数 i に代入されます。Scannerに関する最後の記述、scanner.close();でメモリに引っ張ってきて使用していたScannerの機能(インスタンス)を開放しています。

[do ~ while] -- いわゆるループです。int cnt=0; do{cnt++}while(cnt<2);は、cntの値が0か1の間cnt++(cntの値に1を加算)を繰り返します。同様のループはforを使っても指定できます。for (int i=0; i<2; i++) {(ここに記述された文を2回繰り返す)}

[switch] -- 条件分岐です。cntの値によって実行する文を変更します。switch(cnt){case 0:(cntが0の時ここに記述した文を実行);break; case 1:(cntが1の時ここに記述した文を実行);break;}

[parseInt] -- 文字列を整数に変換します。文字列1と文字列2を足すと12ですが、整数1と整数2を足すと3になります。以下の文はiに代入されている文字(キーボードからの入力値)を整数形式(integer)に変換します。a = Integer.parseInt(i)…ここで例えばInteger.parseInt("A")と文字を整数に変換しようとするとエラーになってしまいます。入力値が数字以外だとエラーになる、ってことです。

[try] -- そこでエラー処理です。tryで囲まれた文の中でエラーが発生した場合、catchで囲まれた文を実行します。try {(ここでエラーの場合)} catch(NumberFormatException j){(ここを実行)} finally{}ここでcnt--としておけば、カウンター値を戻して再度繰り返す…ってことになります。

[println] -- はい、おまちかねの“Hello world!”です。""で囲まれた文章をコンソールに表示します。System.out.println("(ここに記述した文字列を表示)");

…つまりが、やりたいことを実行するためのロジックが想像できて、必要な命令文(ググっても良いのですよ)が解れば、プログラムとはどんな言語であろうと関係なく記述できる…ということです。


■ 記事一覧

絵画の一歩絵画初心者のために蘊蓄を語るページ
1.絵を描く
音楽の一歩楽器初心者のために蘊蓄を語るページ
1.ギターを弾く
プログラミングの一歩ソフト制作初心者のために蘊蓄を語るページ
1.プログラミングとは
2.JAVAを使う
3.JAVAでプログラミング(1)
4.JAVAでプログラミング(2)
5.JAVAでプログラミング(3)
6.PHPでプログラミング(1)
7.Excel VBAでプログラミング(1)
8.Excel VBAでプログラミング(2)