ホームページ >Java >&#&チュートリアル >Java 関数アクセス修飾子と Java 9 モジュール システムとの関係

Java 関数アクセス修飾子と Java 9 モジュール システムとの関係

WBOY
WBOYオリジナル
2024-04-26 08:54:01474ブラウズ

Java 9 モジュール システムでは、アクセス修飾子の意味が変更されました。public 修飾子は、エクスポートされたパッケージのモジュールへのアクセスを許可し、default 修飾子は、エクスポートされたパッケージのモジュールへのアクセスを制限します。修飾子はモジュール内での Declare アクセスのみを許可します。

Java 函数的访问权限修饰符之与 Java 9 模块系统的关系

#Java 関数アクセス修飾子と Java 9 モジュール システムの関係

Java 9 ではモジュール システムが導入されました。 Java アプリケーションを整理およびパッケージ化する新しい方法。モジュール システムは、Java 言語の既存のアクセス修飾子 (public、protected、default、および private) に新しい意味を導入します。

アクセス修飾子

Java のアクセス修飾子は、クラス、フィールド、またはメソッドにアクセスできるクラスとパッケージを指定します。 4 つのアクセス修飾子については、次のように説明します。

  • public: すべてのクラスとパッケージにアクセス可能。
  • 保護: 同じパッケージ内のすべてのクラスおよびすべてのサブクラスにアクセス可能。
  • default (package-private とも呼ばれます): 同じパッケージ内のクラスにのみアクセス可能です。
  • private: クラス、フィールド、またはメソッドが宣言されているクラスにのみアクセス可能です。

モジュール システム

Java 9 モジュール システムを使用すると、コードをモジュールに編成できます。モジュールは、明示的な依存関係とエクスポートされたパッケージを含むコンパイル単位のコレクションです。モジュール システムは、モジュールとパッケージ間の依存関係を確立することによってカプセル化を強制します。

アクセス許可修飾子とモジュール システム

Java 9 モジュール システムでは、アクセス許可修飾子の役割が変更されました。

  • public: クラス、フィールド、またはメソッドにはモジュールの外部から直接アクセスできます。
  • protected: クラス、フィールド、またはメソッドには、モジュール内から、またはパッケージをエクスポートするモジュールからのみ直接アクセスできます。
  • default (package-private): クラス、フィールド、またはメソッドには、パッケージをエクスポートしたモジュールからのみアクセスできます。
  • private: クラス、フィールド、またはメソッドには、宣言モジュールからのみアクセスできます。

実践的なケース

次のモジュール例を考えてみましょう:

module demo.module {
    exports demo.package;
}

package demo.package;

class MyClass {
    public void publicMethod() { }
    protected void protectedMethod() { }
    void defaultMethod() { }
    private void privateMethod() { }
}

この例では、

demo.package パッケージです。他のモジュールがそのパブリック クラス、フィールド、メソッドにアクセスできるようにエクスポートされます。

  • publicMethod はパブリックであり、どのモジュールからでもアクセスできます。
  • protectedMethod は保護されており、demo.module または demo.package パッケージをインポートしたモジュールからのみアクセスできます。
  • defaultMethod はデフォルトであり、demo.package パッケージをインポートするモジュールからのみアクセスできます。
  • privateMethod はプライベートであり、demo.module からのみアクセスできます。

結論

Java 9 モジュール システムとアクセス修飾子の関係を理解することで、アプリケーションのカプセル化を強化し、コード アクセスへのアクセスを管理できます。

以上がJava 関数アクセス修飾子と Java 9 モジュール システムとの関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。