
比較表
比較基準 | パッケージ | インターフェース |
---|---|---|
基本 | パッケージは一緒にクラスやインターフェイスのグループです。 | インタフェースは抽象メソッドと定数フィールドの集まりです。 |
キーワード | パッケージは "Package"キーワードを使って作成されます。 | インタフェースは "Interface"キーワードを使用して作成されます。 |
構文 | パッケージpackage_name; パブリッククラスclass_name { 。 (クラス本体) 。 } | インタフェースinterface_name { 変数宣言 メソッド宣言 } |
アクセス | パッケージをインポートできます | インターフェースは他のインターフェースによって拡張され、クラスによって実装されることができます。 |
アクセスキーワード | パッケージは "import"キーワードを使ってインポートできます。 | インタフェースは "implements"キーワードを使って実装することができます。 |
パッケージの定義
パッケージは、さまざまなクラスやインタフェースの集まりまたはグループです。 パッケージ内のクラスは、何らかの範囲で、または継承によって互いに関連しています。 パッケージを作成してプログラムに使用することもできます。
パッケージを作成する
パッケージを作成するには、以下の手順に従ってください。
- ファイルを開き、ファイルの先頭で[package package_name;]のようにパッケージの名前を宣言します。 ]パッケージ名はパッケージに付けたい名前です。
- 次に、パッケージに入れるクラスを定義し、それをpublicと宣言したことを覚えています。
- ファイルを.javaファイルとして保存してからファイルをコンパイルすると、そのファイルの「.class」が取得されます。
- このファイル用のパッケージを作成するために使用されるコマンドは“ javac -d”です。 file_name.java 現在のディレクトリに「.class」ファイルを含むパッケージが作成されたことがわかります。 親ディレクトリに配置するには、「javac -d」を使用します。 。 file_name.java」コマンド
- サブパッケージ名を[package package_name1]として宣言してサブパッケージを作成することもできます。 package_name2; ]ファイルの先頭に
パッケージMypackage。 public class myclass {public void displayMypackage(){system.out.println( "パッケージMypackageのクラスmyclassのメソッドdisplayMypackage"); }
パッケージを使う
ディレクトリ内で作成または利用可能なパッケージは、importステートメントを使用してプログラム内で使用できます。プログラム内のパッケージをインポートするために使用されるキーワードは“ import”です。 import文は2つの方法で書くことができます。あるいは、パッケージにアクセスするには2つの方法があると言えます。 まず、パッケージの特定のクラスを使用したい場合は、“ import”キーワードの後にパッケージ名を続け、さらにドット演算子とそのパッケージから使用したいクラス名を続けます。 次に、パッケージに含まれる多くのクラスを使用したい場合は、importキーワードの後にパッケージ名を続け、さらにドットと「*」演算子を続けます。
package_nameをインポートします。 クラス名; またはpackage_nameをインポートします。 *;
上記のコードでは、2番目のメソッドがパッケージに含まれるすべてのクラスをインポートすることを示す*記号がわかります。
それでは、パッケージの使い方を例として見てみましょう。
Mypackageをインポートします。 TestMypackage public static void main(string args [])myclass ob1 = new myclass(); ob1.displayMypackage(); パッケージmypackageのクラスmyclassの出力メソッドdisplayMypackage
上記のコードでは、クラスTestMypackageがパッケージMypackageをインポートし、そのdisplayMypackage()メソッドを使用しています。
インタフェースの定義
インターフェイスは一種のクラスですが、インターフェイスで宣言されたメソッドは抽象であるという意味で異なります。つまり、メソッドは宣言されているだけで定義されていないということです。 インターフェース内のフィールドは、常にパブリック、静的、および最終フィールドです。 フィールドは宣言時に初期化する必要があります。 インタフェースによって宣言されたメソッドは、その要件に従ってそのインタフェースを実装するクラスによって定義されます。 インターフェース内のメソッドは機能を実行しないので、インターフェースのオブジェクトを作成することは意味がありません。 したがって、そのインタフェースに対してオブジェクトを作成することはできません。
インタフェースは他のインタフェースを継承することもできますが、そのようなインタフェースを継承するクラスは継承されたインタフェースのすべてのメソッドも実装する必要があります。 フィールドはインタフェースでの宣言時に初期化されるので、インタフェースにコンストラクタは必要ないので、インタフェースにコンストラクタは含まれません。 インターフェースの作成と使用の例を見てみましょう。
interface Area {float pi = 3.14; float find_area(float a、float b){}クラスCircleはArea {float find_area(float a、float b){return(pi * a * a);}を実装します。 クラスの形状{public static void main(string args []){Area A = new Area();} 円C =新しい円(); A = C; フロートF =面積。 find_area(10, 10); system.out.println( "円の面積:" + F); }
上記のコードでは、インタフェースAreaを作成し、クラスCircleはインタフェースAreaを実装しました。 フィールド "pi"は、宣言時にインタフェース内で初期化されています。 クラスCircleは、その要件に従ってクラス領域の抽象メソッドを定義しました。
Javaのパッケージとインタフェースの主な違い
- パッケージはクラスとインタフェースの集まりで、インタフェースは抽象メソッドの集まりです。
- パッケージはキーワードパッケージを使用して作成されますが、インターフェイスはキーワードインターフェイスを使用して作成されます 。
- パッケージ内のクラスまたはインタフェースを使用する場合は、インタフェースを実装する必要があるときにパッケージをインポートします。
結論:
パッケージもインターフェースもコンテナです。 再度定義する代わりに使用するクラスをインポートするだけなので、Packageはコードのサイズを縮小します。 多重継承の場合、継承クラスは継承するメソッドの定義を決定する必要がなく、代わりに独自のものを定義するので、インタフェースは多重継承中に発生する混乱を軽減します。