>  기사  >  Java  >  다양한 클래스에서 Java 함수의 액세스 한정자를 사용하기 위한 규칙

다양한 클래스에서 Java 함수의 액세스 한정자를 사용하기 위한 규칙

PHPz
PHPz원래의
2024-04-25 13:54:02778검색

다른 클래스에서 Java 기능을 사용하는 경우 다음 액세스 권한 규칙을 따르십시오. 기본 액세스 권한은 동일한 패키지 내의 클래스로 제한됩니다. 패키지 가시성은 기본 액세스와 동일하지만 동일한 모듈의 모든 클래스에 적용됩니다. 보호된 액세스는 동일한 패키지의 하위 클래스와 클래스로 제한됩니다. 공개 접근 권한은 모든 클래스에서 볼 수 있습니다.

Java 函数的访问权限修饰符之在不同类中使用的规则

다양한 클래스의 Java 함수에서 액세스 한정자를 사용하기 위한 규칙

Java의 액세스 한정자는 클래스, 메서드 및 필드의 가시성 범위를 제어하는 ​​데 사용됩니다. 다른 클래스에서 함수를 사용할 때는 다음 규칙을 준수해야 합니다.

1. 기본 액세스(수정자 없음)

  • 동일한 패키지 내의 클래스에만 표시됩니다.

2.

  • 기본 액세스와 동일하지만 동일한 모듈의 모든 클래스에 적용됩니다.

3. 보호된 액세스

  • 는 이 클래스의 하위 클래스와 동일한 패키지의 클래스에서만 표시됩니다

4. 공개 액세스

  • 는 모든 클래스에서 볼 수 있습니다.

실제 예

다음 코드를 고려하세요.

// MySuperClass.java
public class MySuperClass {
    protected void protectedMethod() {
        // ...
    }

    public void publicMethod() {
        // ...
    }
}
// MySubClass.java
public class MySubClass extends MySuperClass {
    // 可访问父类的 protected 和 public 方法
    void accessProtected() {
        protectedMethod();
    }

    void accessPublic() {
        publicMethod();
    }
}
// MyOtherClass.java
public class MyOtherClass {
    // 无法访问父类的 protected 或 public 方法
    void accessProtected() {
        // 编译错误: protectedMethod() 具有 protected 访问权限,在此包外不可访问
    }

    void accessPublic() {
        // 编译错误: publicMethod() 具有 public 访问权限,但在不同的模块中不可访问
    }
}

이 예에서는 MyOtherClass 无法访问 MySuperClass 中的 protectedMethod()publicMethod(),因为它们不是在同一包中或不是 MySuperClass의 하위 클래스입니다.

Notes

  • 내부 클래스는 액세스 수정자에 관계없이 외부 클래스의 모든 멤버에 액세스할 수 있습니다.
  • 컴파일러는 액세스 권한을 확인하고 규칙을 위반하면 컴파일 오류를 생성합니다.

위 내용은 다양한 클래스에서 Java 함수의 액세스 한정자를 사용하기 위한 규칙의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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