////////////////////////////////////////////////////////////////////////////////
//  << j283b.java >>
//
//  クラス(8):パッケージ(サブパッケージの利用)
//
//  サブパッケージ利用法を確認する。
//
// ●利用法
//
//   他のパッケージにあるクラスを使用する場合、予約語importを使う。
//
//  ・特定のクラスを取り込む場合
//  
//    import  パッケージ名.クラス名
//        ただし、パッケージ名=名前1.名前2
//
//  ・パッケージのすべてのクラスを取り込む場合
//  
//    import  パッケージ名.*
//        ただし、パッケージ名=名前1.名前2
//
//  プログラム中でクラスを使うときには、パッケージ名.クラス名と書かずに、
//  クラス名だけでよい。
//
//  (1)パッケージを指定したクラスの取り込み。
//  (2)クラスj283a内のフィールド変数aには、指定がないので、
//     obj.aで参照できない。
//  (3)クラスj283a内のpublic指定のあるフィールド変数paには、
//     public指定があるので参照できる。
//  (4)クラスj283a内のメソッドm()には、指定がないので、呼び出せない。
//  (5)クラスj283a内のメソッドpm()には、public指定があるので、呼び出せる。
//
////////////////////////////////////////////////////////////////////////////////

import pack1.pack2.j283a; //(1)パッケージの取り込み。

class j283b {
  public static void main(String args[]) {
  
    j283a obj = new j283a();

    System.out.println("(2)obj.aはエラー"); //(2)
 
    System.out.println("(3)obj.pa = " + obj.pa); //(3) 

    System.out.println("(4)obj.m()はエラー"); //(4)

    System.out.println("(5)obj.pm():" + obj.pm()); //(5)

  }

}
実行結果
% javac j283b.java
% java j283b
(2)obj.aはエラー
(3)obj.pa = 222
(4)obj.m()はエラー
(5)obj.pm():public指定のあるメソッド(pm)