これまで、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あてにメールでそのプログラムを提出してください。 メールには、学生番号、氏名、科目名、授業の日付けを明記してください。