>  기사  >  Java  >  Java 함수 액세스 수정자와 필드 액세스 간의 관계

Java 함수 액세스 수정자와 필드 액세스 간의 관계

王林
王林원래의
2024-04-25 18:09:021006검색

Java 함수의 액세스 한정자는 클래스의 필드에 대한 액세스에 영향을 미칩니다. 공용 함수는 필드 액세스 권한에 관계없이 모든 필드에 액세스할 수 있습니다. 보호된 함수는 보호된 액세스 또는 공개 액세스가 있는 필드에만 액세스할 수 있습니다. 기본 기능은 기본 또는 공개 액세스가 있는 필드에만 액세스할 수 있습니다. 비공개 함수는 비공개 액세스 권한이 있는 필드에만 액세스할 수 있습니다.

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

Java 함수 액세스 수정자와 필드 액세스 간의 연결

Java 함수의 액세스 수정자는 클래스의 필드에 대한 액세스를 제한할 수 있습니다. 이 연결을 이해하는 것은 코드의 보안과 유지 관리 가능성을 유지하는 데 중요합니다.

액세스 권한 수정자

Java에는 네 가지 기능 액세스 권한 수정자가 있습니다.

  • 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.