←前頁 | 次頁→ |
---|
その3(16進電卓)
次は、16進の足し算をするプログラムを作ってみます。ソースファイルは、calhex.java で作成して下さい。
ファイル名は、クラス名と大文字小文字まで一致させないとコンパイルエラーになります。
(Windowsの場合は、大文字でファイルを作成しても、javac や java の引数をクラス名に
合わせればOK。)
文字列と数値の変換のしかたをよくみてね。
/** 16進電卓 使い方:java calhex 2a f3 2つの16進数を足し算した結果を表示する。 @version 1.0,1999/10/03 @author K.Hattori */ public class calhex{ public static void main(String[] args){ if( args.length < 2){ System.out.println("使い方:java calhex 足す数 足される数"); return; } //変数定義はC++と同様どこでもできる int result = 0; //数字でない時はparseIntがエラーを発生する try{ result = Integer.parseInt(args[0].trim(),16) + Integer.parseInt(args[1].trim(),16); }catch( Exception e){ System.out.println("数字変換エラー:" + e.getMessage() ); return; } //結果出力 System.out.println( args[0] + " + " + args[1] + " = " + Integer.toHexString(result)); } }配列について
- JAVAで配列の宣言は、String[] argsのようにします。
(String args[]と書いてもエラーにはならないが、それはC調だとされているらしい。)- C言語と違って大きさを指定するのは、new演算子で初期化したときです。
- 例:String[] words = new String[10];//10個のString配列
- 例:int[] num = { 1, 2, 3, 4, 5}; //5個のint配列
- 配列のインデックスは0から始まります。
型変換(数字→文字)について
- JAVAは、暗黙の型変換は滅多にやらないので、文字と数値はきちんと変換しなければなりません。
- Integer.toString(int型変数または定数) これで10進の文字列になります。
- プログラム中で使っている Integer.toHexString()は16進文字列を生成します。
- ほかにも、String.valueOf(int)なんていうのもあります。
型変換(文字→数字)について
- こちらの型変換はエラーのことがあるので、きちんとする場合は try{}catch()で囲むこと。
- Integer.parseInt(String型変数または定数) これで10進数になります。
- プログラム中で使っている Integer.parseInt(String,16)は16進数文字列変換します。
- ほかにも、Integer.valueOf(String)なんていうのもあります。
- 文字列の先頭にスペースがあるとエラーになるので、trim()メソッドで 文字列の両端のスペースを取り除いています。
staicなメソッド(関数)について
- 型変換で使用している toString()、parseInt()等はstaticメッソドです。
- staticメソッドは、クラス名を指定して、呼び出します。(普通のメッソドは、 オブジェクト変数.メッソド名()です。)
- main()も、ランタイム(java.exe)から calhex.main()で呼出されているはずです。
- 個々のオブジェクトに関係しない関数がstaticと宣言されます。 (雰囲気わかってもらえるかな)
例外エラー処理について
- C++と同様、メソッド毎にどういう例外を定義しているかは決まっており、 try{}catch(){}構文で例外を捕らえます。
- 例外は、呼び出し元へthrow(投げる)かtry{}catch(){}で処理しなければ なりません。
- 例題の場合は、parseInt()が例外を発生します。
- 例外にも種類(クラス)がありますが、ほとんどは Exceptionクラスからの 派生クラスなので、手を抜く時は、Exception クラスでcatchします。
- 通知された例外は、たいていメッセージを持っているので、 手を抜くときは、e.getMessage()で返される文字列を表示します。
- catch( 変数) が本来の構文で、指定された変数と同じ型(クラス)の 例外が、(もしあれば)変数に代入されて、catch以降のブロックが実行 されます。catch( Exception e)は、eという名前のException型の変数を 定義して、catch構文に渡しているだけです。
メソッド:
←前頁 次頁→
- クラスに所属する関数のこと。クラスに属する変数はプロパティとも呼ばれる。
- 方法(論)。without method で”でたらめに”の意。 メソッドがバッグっているとコンピュータの動きがでたらめに?
(The computer is now running without method.)