Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 액세스 수정자와 비 액세스 수정자의 차이점은 무엇입니까?

<시간/>

액세스 수정자

액세스 한정자는 액세스 수준을 제어하기 위해 클래스, 변수, 메서드 및 생성자와 함께 사용되는 키워드입니다.

Java에는 4개의 액세스 수정자가 있습니다.

  • 기본값

    액세스 수정자가 지정되지 않으면 java가 기본 수정자로 처리됩니다. 기본 수정자의 범위는 패키지 내로 제한됩니다.
  • 공개

    public 수정자의 범위는 패키지 외부와 모든 곳에서 액세스하는 것입니다.
  • 비공개

    private 수정자의 범위는 클래스 자체 내에서 액세스하는 것입니다.
  • 보호됨

    보호된 수정자의 범위는 패키지 및 모든 하위 클래스 내에서 제한됩니다.

비접근 수정자

비액세스 수식어는 액세스 수준과 관련이 없지만 지정된 경우 특별한 기능을 제공하는 키워드입니다.

  • 최종

    final 키워드는 변수, 메서드 또는 클래스와 함께 사용할 수 있습니다. 내용이 수정되는 것을 방지합니다. 클래스와 함께 선언하면 클래스가 확장되는 것을 방지합니다.
  • 정적

    정적 수정자는 클래스 인스턴스 없이 액세스할 수 있는 클래스 변수 및 메서드와 함께 사용됩니다. 정적 변수에는 단일 저장소만 있습니다. 모든 객체는 정적 변수의 단일 저장소를 공유합니다. 개체 없이 직접 액세스할 수 있습니다. 정적 메서드도 선언할 수 있습니다. main() 메서드는 널리 사용되는 정적 메서드입니다. 정적 블록도 ​​선언할 수 있으며 main() 메서드보다 먼저 실행됩니다.
  • 추상

    abstract는 클래스 및 메서드와 함께 사용할 수 있습니다. 추상 클래스는 인스턴스화할 수 없으며 그 목적은 확장될 뿐입니다. 추상 메서드는 본문 없이 선언되고 세미콜론으로 끝납니다. 클래스에 추상 메서드가 포함되어 있으면 추상 메서드도 지정해야 합니다. 추상 클래스를 확장하는 클래스는 모든 추상 메서드를 구현해야 합니다.
  • 동기화됨

    한 번에 하나의 스레드에서만 메서드에 액세스할 수 있음을 나타냅니다.
  • 일시적

    인스턴스 변수는 특정 변수를 포함하는 개체를 직렬화할 때 JVM이 특정 변수를 건너뛰도록 나타내기 위해 일시적으로 표시됩니다.
  • 휘발성

    Volatile 키워드는 Java 변수를 "메인 메모리에 저장 중"으로 표시하는 데 사용됩니다. 즉, 휘발성 변수의 모든 읽기는 CPU 캐시가 아닌 컴퓨터의 주 메모리에서 읽히고 휘발성 변수에 대한 쓰기는 CPU 캐시뿐만 아니라 주 메모리에 기록됩니다.
  • 엄격함

    자바의 Strictfp 키워드를 사용하면 부동 소수점 변수에서 작업을 수행하는 경우 모든 플랫폼에서 동일한 결과를 얻을 수 있습니다.