>  기사  >  Java  >  Java 언어 액세스 수정자

Java 언어 액세스 수정자

PHPz
PHPz원래의
2024-08-24 06:39:02952검색

Modificadores de acesso da linguagem Java

수식어 유형:

  • 공개: 다른 클래스의 메서드를 포함하여 모든 프로그램 코드를 통해 클래스 멤버에 대한 액세스를 허용합니다.
  • private: 클래스 자체 내의 멤버 액세스를 제한하여 다른 클래스의 메서드가 직접 액세스하지 못하도록 합니다.
  • protected: 상속에 사용되며 8장에서 다룹니다.
  • 기본 액세스: 수식어를 사용하지 않으면 패키지와 관련된 경우를 제외하고 액세스는 공개와 동일합니다.

수식어의 예:
멤버 선언에서 public 및 private을 사용하는 방법의 예:

  • 공개 문자열 errMsg;
  • 비공개 계정Balance bal;
  • private boolean isError(byte status) { // ... }

실제 시연:
클래스 내 액세스 제어:

  • MyClass의 알파와 같은 비공개 멤버는 클래스 자체의 메서드로만 액세스할 수 있습니다.
  • 접근자 메서드(getAlpha() 및 setAlpha())를 통해 공개 메서드로 비공개 멤버에 액세스합니다.
  • 다른 클래스의 비공개 멤버에 직접 액세스하려고 하면 컴파일 오류가 발생합니다.
class MyClass {
    private int alpha; // acesso privado
    public int beta;   // acesso público
    int gamma;         // acesso padrão (equivalente a public neste contexto)

    // Métodos para acessar alpha
    void setAlpha(int a) {
        alpha = a;
    }

    int getAlpha() {
        return alpha;
    }
}

사용 예: AccessDemo.java 클래스

결과:

  • 비공개 멤버 alpha에 대한 액세스는 공개 메소드 setAlpha() 및 getAlpha()를 통해서만 수행될 수 있습니다.
  • MyClass 클래스 외부에서 알파에 직접 액세스하는 것은 금지되어 있어 컴파일 오류가 발생합니다.

예: FailSoftArray:

  • 배열이 비공개 멤버로 캡슐화되고 공개 메서드로만 액세스되는 "내결함성" 배열을 구현합니다.
  • 캡슐화: 범위를 벗어난 액세스로부터 어레이를 보호하여 런타임 예외를 방지합니다.
  • 비공개 멤버: a, errval 및 indexOK()는 비공개이므로 배열의 무결성을 보호합니다.
  • Public Member: length는 공개되어 Java의 표준 배열 구현과 유사하게 배열 크기를 쿼리할 수 있습니다.
  • 공개 메서드: put() 및 get()을 사용하여 배열에서 값을 저장하고 검색하여 액세스를 안전하게 제어합니다.

결론:
액세스 제어는 성공적인 객체 지향 프로그래밍에 매우 중요하며, 특히 상속을 처리하고 데이터 무결성을 보장할 때 더욱 그렇습니다.

결과:
"내결함성" 배열은 범위를 벗어난 인덱스에 액세스하려고 할 때 런타임 오류를 방지합니다.
배열 요소에 대한 액세스는 제한 검사와 함께 공용 메소드 get() 및 put()을 통해 안전하게 수행됩니다.
프로그램은 자동 오류를 표시한 다음 오류를 명시적으로 처리하여 인덱스가 범위를 벗어난 경우를 표시합니다.
다음 예는 클래스 멤버에 대한 액세스를 제어하고 데이터 무결성과 보안을 보장하기 위해 Java 액세스 수정자(공용, 개인 및 기본 액세스)가 적용되는 방법을 보여줍니다.

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

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