*パッケージ [#xf71af60]
クラスやインターフェイスの集まりです。
#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です");
}
}
}}