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