私のホームページへ - 前の授業へ - 次の授業へ

情報処理IIIA(Javaプログラミング入門)第12回

目次
  1. その他の話題(1)
  2. 演習12
  3. レポート課題

その他の話題(1)

これまで、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)とよびます。

認識子の約束は、変数名のときに説明した約束と同じです。 識別子は、アルファベットから始まり、アルファベットか数字かアンダースコア(_)が並んだ単語です。 また、newthis などのキーワードは識別子としては使えません。

認識子は、そのものをよく表す分かりやすい名前にしてください。 プログラムが理解しやすくなります。 また、慣習も利用してください。 例えば、for 文のループ変数は、ij がよく用いられます。 認識子の大文字小文字は、次のように使い分ける場合が多いです。

種類使い分け
定数名全て大文字PI, MAX_VALUE
クラス名先頭が大文字Time, MyWallet
その他先頭が小文字hour, clearAll
表12.1 認識子の大文字小文字の使い分け

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桁程度
論理型booleantrue または false
文字型char\u0000(0)〜\uFFFF(65535)
表12.2 Java言語の基本型

整数を扱う場合、普通は 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 クラスのメソッドで重要なものは以下の通りです。

int length()
レシーバの文字数を返す。
static String valueOf(int i)
i を文字列に変換して返す。

演習12

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


私のホームページへ - 前の授業へ - 次の授業へ

このページの複製は、東京女子大学学内に限り許可します。 このページへのリンクを許可します。
2000年12月14日更新
製作・著作:小西善二郎<konishi@twcu.ac.jp>