パッケージ

クラスやインターフェイスの集まりです。

#codeprettify{{ package packageName }} packageNameはパッケージ名です

#codeprettify{{ packege test; }}

階層構造にすることも可能です。

#codeprettify{{ packege test.test2.test3 }}

この場合、これと同じ構造のディレクトリ構成でないといけません。

PackageDemo.java

#codeprettify{{ package p;

class PackageDemo{

   public static void main(String args[]){
		A a = new A();
		a.a1();
		B b = new B();
		b.b1();
		C c = new C();
		c.c1();
   }

} }}

A.java

#codeprettify{{ package p;

class A{

   void a1(){
       System.out.println("a1");
   }

} }}

B.java

#codeprettify{{ package p;

class B{

   void b1(){
	System.out.println("b1");
   }

} }}

C.java

#codeprettify{{ package p;

class C {

   void c1()
   {
	System.out.println("c1");
   }

} }}

上記のファイルは\pに入っているとします。
構成はこんなカンジね

ドライブ?
|
|
|
|
+----\..(\pの親ディレクトリ)
|    |
|    |
・    +----\p
・    |    |- PackageDemo.java
・    |    |- A.java
      |    |- B.java
      |    |- C.java
      ・
      ・
      ・

コンパイルは\pの親ディレクトリ(\pより一つ上)に移り、

#codeprettify{{ javac p\*.java }}

と行います。 実行は

#codeprettify{{ java p.PackageDemo }} とします。こちらも親ディレクトリ(\pより一つ上)から実行です。

こういう使い方をすると便利っぽい
extendsを使うことでわずらわしいメソッドを使うときのクラスの指定を 行わなくてすむ
ただ、わかりづらくなるかも・・・

Packa.java

#codeprettify{{ import B.*; import C.*;

class Pack extends c{

   public static void main(String args[])  {
       //通常(?)例
       b b1 = new b();
       bb bb1 = new bb();
       b1.commentout();
       bb1.commentout();
       //便利例
       commentoutC();      //extendsされてるのでクラスの指定は省略できる
       commentoutC2();     //こちらはCクラスにextendsされているのでクラスの指定は省略できる
   }

} }}

B\b.java

#codeprettify{{ package B;

public class b{

   public static void commentout(){
       System.out.println("こちらはBパッケージです");
   }

} }}

B\bb.java

#codeprettify{{ package B;

public class bb{

   public static void commentout(){
       System.out.println("こちらはBパッケージのbbです");
   }

} }}

C\c.java

#codeprettify{{ package C; public class c extends c2{

   public static void commentoutC(){
       System.out.println("こちらはextendsされたCパッケージのCです");
   }

} }}

C\c2.java

#codeprettify{{ package C; public class c2{

   public static void commentoutC2(){
       System.out.println("こちらはc classにextendsされたCパッケージのC2です");
   }

} }}


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-11-15 (火) 16:49:19