これまで、Java言語を理解するための最低限の知識を説明してきました。 残りの授業で、Javaを利用する上で有用な情報を紹介し、Javaシステムの仕組みについて触れます。
プログラムの一部や全部の説明文がプログラムの中に書けますと、プログラムが理解しやすくなります。
このような説明文をコメント(comment)とよびます。
Javaコンパイラは、プログラムに記号 //
が現れますと、そこから行末までを無視します。
そこにコメントを書けば、プログラムに影響を与えずにプログラムが説明できます。
次のプログラムはコメントの使用例です。
class GoodMorning { // b00a001, Kyoko Azuma, Sep. 21, 2000 public static void main (String[] args) { System.out.println("Good morning!"); // Say good morning. } }
また、記号 /*
と */
に囲まれた部分も無視されます。
このふたつは同じ行にある必要はありませんので、たくさんの行を一度にコメント指定できます。
ただし、このコメントは入れ子にできません。
例えば、
System.out.println("Good morning!"); /* System.out.println("----------"); System.out.println("----------"); */ System.out.println("Good afternoon!");
という部分をコメント指定しようとして、
/* System.out.println("Good morning!"); /* System.out.println("----------"); System.out.println("----------"); */ System.out.println("Good afternoon!"); */
と書きましても、最初の */
までがコメントだと見なされてしまいます。
プログラムの行頭の空白文字(字下げ)はインデント(indent)とよばれます。 Javaコンパイラは行頭の空白文字を無視します。 インデントをうまく使いますと、プログラムの構造を見やすくできます。
上記のプログラムでインデントを用いませんと
class GoodMorning { // b00a001, Kyoko Azuma, Sep. 21, 2000 public static void main (String[] args) { System.out.println("Good morning!"); // Say good morning. } }
となります。
最後の2つの閉じブレース(}
)がそれぞれどの開きブレース({
)に対応しているかが分かりにくいです。
インデントを用いずに長いプログラムを書きますと、ブレースの対応が分からなくなり、プログラムの構造を見えなくしてしまいます。
これまで、変数名、メソッド名、クラス名、フィールド名など、色々なものに名前をつけてきました。 これらの名前をまとめて識別子(identifier)とよびます。
認識子の約束は、変数名のときに説明した約束と同じです。
識別子は、アルファベットから始まり、アルファベットか数字かアンダースコア(_
)が並んだ単語です。
また、new
や this
などのキーワードは識別子としては使えません。
認識子は、そのものをよく表す分かりやすい名前にしてください。
プログラムが理解しやすくなります。
また、慣習も利用してください。
例えば、for
文のループ変数は、i
や j
がよく用いられます。
認識子の大文字小文字は、次のように使い分ける場合が多いです。
種類 | 使い分け | 例 |
---|---|---|
定数名 | 全て大文字 | PI , MAX_VALUE |
クラス名 | 先頭が大文字 | Time , MyWallet |
その他 | 先頭が小文字 | hour , clearAll |
型(type)とはデータの種類のことです。 これまで整数や配列、クラスなどのデータを扱ってきました。 これらのデータは、それぞれ整数型、配列型、クラス型に分類されます。
Java言語の型は、まず基本型(primitive type)と参照型(reference type)の2つに大きく分類されます。 基本型には、整数型、浮動小数点数型、論理型、および文字型があります。 参照型には、クラス型と配列型があります。 以下は基本型の詳細です。
種類 | 型名 | 説明 |
---|---|---|
整数型 | byte | -27(-128)〜27 - 1(127) |
整数型 | short | -215(-32768)〜215 - 1(32767) |
整数型 | int | -231(9桁程度)〜231 - 1(9桁程度) |
整数型 | long | -263(18桁程度)〜263 - 1(18行程度) |
浮動小数点数型 | float | 指数+38〜-45, 有効桁数7桁程度 |
浮動小数点数型 | double | 指数+308〜-324, 有効桁数14桁程度 |
論理型 | boolean | true または false |
文字型 | char | \u0000(0)〜\uFFFF(65535) |
整数を扱う場合、普通は int
型を用います。
int
型の範囲を超えるような大きい数を扱うときに、long
型を用います。
浮動小数点数を扱う場合、普通は double
型を用います。
これまで文字列は、
int result = 12345679 * 9; System.out.println("result: " + result);
のように画面出力のときのみ使ってきました。
実は、文字列は組み込みのクラスである String
クラスのインスタンスです。
文字列はよく使われますので、便利な機能がいくつか用意されています。
まず、コンストラクタを使わなくてもインスタンスが生成できます。 コンストラクタを用いて
String s = new String(); s = "Good";
や
String s = new String("Good");
などと書かなくても、
String s = "Good";
でよいのです。
また、演算子 +
が使えます。
これは、文字列を連接します。
String s1 = "Good"; String s2 = "morning!"; String s3 = s1 + " " + s2;
としますと、s3
には文字列 "Good morning!" が格納されます。
文字列と数を演算子 +
で結びますと、数が文字列に変換されてから連接されます。
int result = 12345679 * 9; String s1 = "result = "; String s2 = s1 + result;
としますと、s2
には文字列 "result = 111111111" が格納されます。
String
クラスのメソッドで重要なものは以下の通りです。
length
()valueOf
(int i)以下のように、21, 22, ..., 220 を右ぞろえで出力するプログラムを作成してください。 そろえる位置は、計算結果によらず、あらかじめ定めておいてください。 (この場合は左から10文字目です。)
b00a001@Ampere:~/java% java TwiceTwice 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 b00a001@Ampere:~/java%
今日の演習12にしたがってJavaプログラムを作成し、konishi@twcu.ac.jpあてにメールでそのプログラムを提出してください。 メールには、学生番号、氏名、科目名、授業の日付けを明記してください。