組み込みクラス(API)

  1. クラスの詳細
    http://java.sun.com/j2se/1.3/ja/docs/ja/api/  
    にクラス別、および、メソッド名の索引による詳細な説明があります。ここでは、Java1.1の主なクラスをパッケージ別に紹介します。

  2. java.lang.パッケージ

    1. StringとStringBuffer
      1. 目的
        Javaのシンプルクラスには文字列が含まれていません。文字列はオブジェクトとして扱われます。変更がない場合はStringクラス、変更が必要な場合はStringBufferクラスを利用します。

      2. 文字列の作成
        String s1="Hello String";
        が最も簡単な方法ですが、これは、
         String s2=new String("Hello String");
        あるいは、
         String s3=new String();
        s3="Hello String";
        と同じです。

      3. 文字列の変更
        文字列を変更するメソッドは、StringBufferクラスに含まれます。Stringと区別することによりメモリ管理を容易にしています。

        1. public class app1 {
          public static void main(String[] arg) {
          StringBuffer s1=new StringBuffer("Hello from Java");
          s1.replace(6,10,"to");//文字列の6から10番の文字を置換
          System.out.println(s1);
          }
          }

          実行結果
          Hello to Java

        2. +演算
          文字列では、結合演算子 + が利用できますが、これはJavaシステムでの特殊なサービスです。一般的にクラスに演算子を定義することは出来ません。

    2. 書式化:NumberFormatクラス
      NumberFormatクラスを利用すると、数値の書式を設定できます。ここでは、少数の桁数を設定します。java.text.*のimportが必要です。


      1. import java.text.*;
        public class app1 {
        public static void main(String[] arg) {
        double value=1.23456;
        NumberFormat nf=NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(3);//少数の桁数を3に指定
        String s1=nf.format(value);
        System.out.println(s1);
        }
        }
      2. 実行
        1.235

    3. 文字列から数値への変換
      Sting s1 から、整数に変換するには
       Integer.ParseInt(s1);
      を利用します。


      1. String s1="12.5";
        System.out.println(Float.parseFloat(s1));
        String s2="12345";
        System.out.println(Integer.parseInt(s2));

    4. Threadクラス
      1. スレッド
        多くのOSはマルティプロセスによる並行処理を実現しています。スレッドはプロセス内部で生成される軽量のプロセスです。javaではこのスレッド機能をThreadクラスで実装しています。

      2. sleep()メソッド
        sleep()メソッドは指定した時間休止する機能でタイマー処理に利用できます。しかし、sleep注はイベント処理もできなくなります。GUIインターフェースを実装している場合、一定時間間隔の処理を実行するにはスレッドを利用します。

      3. スレッドの作成と起動
        スレッドはスレッドクラスを継承したクラスthreadexを作成し、そのインスタンスtを作成します。t.startでスレッドを起動します。スレッドの処理は、threadexクラスでオーバーライドしたrun()メソッドが実行します。スレッドの作成は、Runnableインターフェースの実装でも可能です。

        1. スレッドの生成
          スレッドクラスの定義:
          class ThreadX extends 
          Thread{
           public void run()
            { }
            }
          スレッドの実行:
            Thread t=new ThreadX;
            t.start();


      4. 1秒間隔で、10回"hello"を表示します。
         class test {
        public static void main(String args[]) {
        Write pw = new Write();
        pw.start();
        }
        }

        class Write extends Thread {
        public void run() {
        try {
        for(int count = 0 ; count < 10 ; count++) {
        System.out.println("hello");
        Thread.sleep(1000);
        }
        }
        catch (InterruptedException err) {
        System.out.println(err);
        }
        }
        }
      5. スレッドの応用とアニメーション
        スレッドのrun()メソッドで一定時間sleep()後、再描画処理(repaint())を行うことで、動画を表示できます。この処理は、スレッドの簡単な応用です。
        スレッドの他の応用としては、処理時間のかかる処理をスレッドで行うことでGUIの処理を軽くできます。また、ネットワークの差バー処理を行うとき、接続する各クライアントにスレッドで対応することにより、サーバーの処理を簡潔に記述できます。

      6. 同期指定されたメソッド:syncronized
        複数のスレッドが同時に実行すると、処理が異常になる場合があります。このような場合、そのメソッドにsyncronizedキーワードを付加すると、付加されたメソッドは実行時にロックされ、一度に複数のスレッドが実行することを防ぐことができます。

      7. joinメソッド
        特定のメソッドの終了を待ち合わせるにはスレッドクラスのjoin()メソッドを実行します。実行すると、指定したクラスのメソッドが終了するまでsleep(休止)します。

    5. その他
      1. java.lang.Math
        各種の数学関数をクラスメソッドで定義しています。

      2. java.Thread
        スレッドの処理を行います。

  3. java.ioパッケージ

    1. File
      ディレクトリの作成、ファイルの作成・削除・名前変更、ディレクトリに属する要素の一覧などを行います。

    2. InputStream、OutputStream
      ファイルの入出力ストリームを処理します。

      1. ex.javaファイルをex.txtファイルにコピーします
        try {
        FileInputStream in =new FileInputStream("ex.java");
        int size=in.available();//ファイルのバイト数
        byte barray[] = new byte[size];
        int size1=in.read(barray);
        System.out.println("copy size:"+size+":"+size1);

        FileOutputStream out=new FileOutputStream("ex.txt");
        out.write(barray);//配列のサイズだけ記録する
        out.close();
        }
        catch (IOException ex){
        System.out.println("io-error:"+ex.getMessage());
        }

  4. java.utilパッケージ
    1. Date
      日付、時刻に関する処理を行います。

    2. Random
      乱数生成処理を行います

    3. Vector
      ベクタ(可変個数のデータ記録)処理を行います。

    4. Enumeration
      番号による数え上げが出来ない「もの」の順序処理を行います。

    5. Hashtable
      ハッシュテーブル(名前で検索できる配列)に関する処理を行います。

  5. java.net パッケージ
    1. ServerSocket
      サーバー側ソケットの処理を行います。

    2. Socket
      ネットワークの送受信を行うソケットの処理を行います。

    3. DatagramSocket
      データグラムのソケットの処理を行います。

  6. awtパッケージ
    1. Color
      色に関する処理を行います

    2. Event
      イベントに関する処理を行います

    3. Graphics
      グラフィックスに関する処理を行います

    4. Image
      画像に関する処理を行います

    5. Font、FontMetrics
      フォントに関する処理を行います

    6. Component
      この中に、Button,CheckBox、Choise,List、等のコンポーネントのクラスが含まれます。

    7. MenuComponent
      メニュー処理を行います

    8. 各種レイアウト
      BorderLayout,FlowLayout,GridBaglayoutなどのレイアウト処理を行います。

    9. applet
      このクラスを継承したクラスはブラウザと接続し、ブラウザの画面にJavaのウインドウを表示することができます。
      jcomponent.Container.Panelを継承します。