クラスやインターフェイスの集まりです。
#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です"); }
} }}