ホームページ  >  記事  >  Java  >  Java 関数のアクセス修飾子とフィールド アクセスの関係

Java 関数のアクセス修飾子とフィールド アクセスの関係

王林
王林オリジナル
2024-04-25 18:09:021027ブラウズ

Java 関数のアクセス修飾子は、クラス内のフィールドへのアクセスに影響します。パブリック関数は、フィールドのアクセス許可に関係なく、すべてのフィールドにアクセスできます。保護された関数は、保護されたアクセスまたはパブリック アクセスを持つフィールドにのみアクセスできます。デフォルト関数は、デフォルトまたはパブリック アクセスを持つフィールドにのみアクセスできます。プライベート関数は、プライベート アクセスを持つフィールドにのみアクセスできます。

Java 函数的访问权限修饰符之与字段访问的联系

Java 関数のアクセス修飾子とフィールド アクセスの間の関係

Java 関数のアクセス修飾子は、クラス内のフィールドへのアクセスを制限できます。この関係を理解することは、コードのセキュリティと保守性を維持するために重要です。

アクセス許可修飾子

Java には 4 つの関数アクセス許可修飾子があります:

  • public: すべてのクラスが関数にアクセスできるようにします。
  • protected: 同じパッケージに属するクラスとサブクラスが関数にアクセスできるようにします。
  • default (修飾子なし): 同じパッケージに属するクラスのみが関数へのアクセスを許可されます。
  • private: クラス自体のみが関数にアクセスできるようにします。

フィールド アクセスのリンク

関数のアクセス修飾子は、クラス内のフィールドへのアクセスに影響します。

  • 関数が public の場合、フィールドのアクセス権に関係なく、すべてのフィールドにアクセスできます。
  • 関数が protected の場合、protected または public アクセス権を持つフィールドのみにアクセスできます。
  • 関数が default の場合、default または public アクセス権を持つフィールドのみにアクセスできます。
  • 関数が private の場合、private アクセス権を持つフィールドのみにアクセスできます。

実際のケース

次のクラスを考えてみましょう:

public class MyClass {
    private int privateField;
    protected int protectedField;
    int defaultField;
    public int publicField;

    public void publicMethod() {
        // 可以访问所有字段
        System.out.println(privateField);
        System.out.println(protectedField);
        System.out.println(defaultField);
        System.out.println(publicField);
    }

    protected void protectedMethod() {
        // 可以访问 protected 和 public 字段
        System.out.println(protectedField);
        System.out.println(publicField);
    }

    void defaultMethod() {
        // 可以访问 default 和 public 字段
        System.out.println(defaultField);
        System.out.println(publicField);
    }

    private void privateMethod() {
        // 只能访问 private 字段
        System.out.println(privateField);
    }
}

この場合:

  • publicMethod() はパブリック メソッドであるため、すべてのフィールドにアクセスできます。 publicMethod() 可以访问所有字段,因为它是公共方法。
  • protectedMethod() 可以访问 protectedFieldpublicField,因为它是受保护方法。
  • defaultMethod() 可以访问 defaultFieldpublicField,因为它是默认为包内可见的方法。
  • privateMethod() 只能访问 privateField
  • protectedMethod() は保護されたメソッドであるため、protectedFieldpublicField にアクセスできます。
🎜defaultMethod() は、デフォルトでパッケージ内で表示されるメソッドであるため、defaultFieldpublicField にアクセスできます。 🎜🎜privateMethod() はプライベート メソッドであるため、privateField にのみアクセスできます。 🎜🎜

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

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