プログラミング応用a 第10回 『モジュール化その2 (パッケージ化とインポート、パッケージレベルでのアクセス制御)』  

10-2 【package宣言(クラスをパッケージへ編入する方法)】

●あるクラスを特定のパッケージに編入したい場合は,ソースファイルの先頭でアクセス修飾子 package をつけて宣言を行う(下図)。

 


10-3 【import宣言(別のパッケージ内のクラスを使う)】

 あるクラスから別のクラスを利用する場合,同一パッケージ内のクラスは特別に何もしなくても使用することが出来る。
しかし,別のパッケージ内のクラスを使うには,ソースファイルの先頭で import 宣言を行わなくてはならない(下図)。
(なお,インポートとは,「輸入する」「外から内へ持ってくる」という意味の単語である)

※なお,デフォルトパッケージ内のクラスは,その他のパッケージからはインポートできない。
 デフォルトパッケージには名前がないので,import宣言で指定のしようが無いためである。



10-4 【パッケージとクラスのアクセス指定】

●あるパッケージのクラスを他のパッケージからも利用可能にするためには, クラス定義で public と指定してクラスを定義しなくてはならない。
(下図をクリックすると補助情報が表示されます)


表にまとめると次の様になる。

  指定無しクラス publicクラス
同一パッケージ内のクラスから
別のパッケージ内のクラスから ×

※つまり,publicクラスへはどこからでもアクセスできる




10-5 【パッケージとメンバのアクセス指定】

● メンバのアクセス特性を指定するとき, private 指定の他に,「指定無し」があったが,新たに「public指定」を紹介する。

  privateメンバ 指定無し(デフォルトアクセス)メンバ publicメンバ
同一クラス内から
同一パッケージ内のクラスから ×
別のパッケージ内のクラスから × ×

※その他にprotectedというメンバアクセス指定があるがここでは省略する
※つまり,publicメンバはどこからでもアクセスできる

●図で見るprivateメンバ/デフォルトアクセスメンバ/publicメンバ

※つまり, public クラス(厳密には,publicクラスのpublicメンバ)はパッケージのインタフェイス部を構成する。
※それ以外(publicでないクラス,publicクラスのpublic以外のメンバ )は,パッケージの実装部を構成する。


次へ進む