next up previous
Next: 9.4 java.utilパッケージの利用 Up: 9 パッケージ Previous: 9.2 JDK1.4でのパッケージ

9.3 パッケージの例

パッケージ内のライブラリを使うにはimport文を使う. 自分でパッケージを作る場合はpackage文を使う. パッケージ名は,そのクラスファイルが置かれている ディレクトリ名と同じ名前とする.
/* 
 * ap/application/Main.java
 * 下村:Javaによるインターネットプログラミングより.
 *   近代科学社.
 */
package application;
import resource.*;
/**
 * ガソリンスタンドで給油を行います.
 */
public class Main {
  public static void main (String[] args) {
    GasStation gs = new GasStation(1000);
    Car car1 = new Car(100);
    Car car2 = new Car(200);
    Tank tank1 = new Tank(400, 350);
    gs.fillUp(car1);
    gs.fillUp(car2);
    gs.fillUp(tank1);
    gs.fillUp(gs);
  }
}
/*
 * ap/application/GasStation.java
 */
package application;
import resource.*;
/**
 * ガソリンスタンドの役割を果します。
 */
public class GasStation extends Tank {
  /**
   * ガソリンスタンドを生成します。
   * @param capacity タンクの容量と残油量
   */
  public GasStation(int capacity) {
    super(capacity, capacity);
  }

  /**
   * タンクを満タンにします。
   * @param tank タンク
   */
  public void fillUp(Tank tank) {
    int amount = tank.fillUp();
    int remain = getFuel() - amount;
    setFuel(remain);
    System.out.println(tank + ": 給油量 = " + amount);
    System.out.println(this + ": 残油量 = " + remain);
  }
}
/*
 * ap/application/Car.java
 */

package application;
import resource.*;

/**
 * 自動車の役割を果します。
 */
public class Car extends Tank {
  /**
   * 指定された容量のタンクをもつ、自動車を生成します。
   * @param capacity タンクの容量
   */
  public Car(int capacity) {
    super(capacity, 0);
  }
}
/*
 * ap/ressource/Tank.java
 */
package resource;

/**
 * タンクの役割を果します。
 */
public class Tank {
  private int capacity = 0;
  private int fuel = 0;

  /**
   * タンクを生成します。
   * @param capacity タンクの容量
   * @param fuel 残油量
   */
  public Tank(int capacity, int fuel) {
    this.capacity = capacity;
    this.fuel = fuel;
  }

  /**
   * 残油量を取得します。
   * @return 残油量
   */
  public int getFuel() {
    return fuel;
  }

  /**
   * 残油量を設定します。
   * @param amount 残油量
   */
  public void setFuel(int amount) {
    fuel = amount;
  }

  /**
   * タンクを満タンにします。
   * @return 給油量
   */
  public int fillUp() {
    int amount = capacity - fuel;
    fuel = capacity;
    return amount;
  }
}
% cd ap
% javac application/Main.java
% java application.Main
application.Car@7b7072: 給油量 = 100
application.GasStation@136228: 残油量 = 900
application.Car@113750: 給油量 = 200
application.GasStation@136228: 残油量 = 700
resource.Tank@4672d0: 給油量 = 50
application.GasStation@136228: 残油量 = 650
application.GasStation@136228: 給油量 = 350
application.GasStation@136228: 残油量 = 650


generated through LaTeX2HTML. M.Inaba 平成18年5月7日