Javaのパッケージとインターフェースの違い

著者: Laura McKinney
作成日: 2 4月 2021
更新日: 17 5月 2024
Anonim
No.39 パッケージとインポート
ビデオ: No.39 パッケージとインポート

コンテンツ


パッケージとインターフェイスは両方ともコンテナとして機能します。パッケージとインターフェースのコンテンツは、クラスに応じてインポートおよび実装することで使用できます。パッケージとインターフェースの基本的な違いは、パッケージにはクラスとインターフェースのグループが含まれるのに対して、インターフェースにはメソッドとフィールドが含まれることです。比較チャートを使用して、他のいくつかの違いを調べてみましょう。

  1. 比較表
  2. 定義
  3. 主な違い
  4. 結論

比較表

比較の根拠パッケージインターフェース
ベーシックパッケージは、クラスおよび/またはインターフェースのグループです。インターフェイスは、抽象メソッドと定数フィールドのグループです。
キーワードパッケージは、「Package」キーワードを使用して作成されます。インターフェイスは、「Interface」キーワードを使用して作成されます。
構文パッケージpackage_name;
パブリッククラスclass_name {
.
(クラスの本体)
.
}
インターフェースinterface_name {
変数宣言;
メソッド宣言;
}
アクセスパッケージをインポートできます インターフェイスは、別のインターフェイスで拡張し、クラスで実装できます。
アクセスキーワード パッケージは、「import」キーワードを使用してインポートできます。インターフェイスは、「implement」キーワードを使用して実装できます。


パッケージの定義

パッケージは、さまざまなクラスおよびインターフェイスのコレクションまたはグループです。パッケージ内のクラスは、何らかのスコープ内または継承によって互いに関連付けられています。パッケージを作成して、プログラムで使用することもできます。

パッケージを作成する

パッケージを作成するには、次の手順に従ってください。

  1. ファイルを開き、パッケージ名がパッケージに付ける名前のように、ファイルの上部でパッケージの名前を宣言します。
  2. 次に、パッケージに配置するクラスを定義し、パブリックとして宣言することを忘れないでください。
  3. ファイルを.javaファイルとして保存してからファイルをコンパイルすると、そのファイルの「.class」が取得されます。
  4. このファイルのパッケージを作成するために使用されるコマンドは「javac -d」です。 file_name.java。現在のディレクトリに「.class」ファイルを含むパッケージが作成されていることがわかります。親ディレクトリに配置するには、「javac -d」を使用します。 。 file_name.java」コマンド。
  5. ファイルの先頭にサブパッケージ名を宣言して、サブパッケージを作成することもできます。

パッケージ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は、その要件に従ってクラス領域の抽象メソッドを定義しました。

  1. パッケージはクラスとインターフェイスのグループであり、インターフェイスは抽象メソッドのグループです。
  2. キーワードを使用してパッケージが作成されます パッケージ 一方、インターフェースはキーワードを使用して作成されます インタフェース.
  3. パッケージ内のクラスまたはインターフェースを使用する場合は、パッケージをインポートし、インターフェースを実装する必要があります。

結論:

パッケージとインターフェースの両方がコンテナです。パッケージは、使用するクラスを再度定義するのではなくインポートするだけなので、コードのサイズが小さくなります。多重継承の場合、継承クラスは継承するメソッドの定義を決定する必要がなく、代わりに独自のクラスを定義するため、インターフェイスは多重継承中の混乱を減らします。