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

Java의 정적 메소드 또는 정적 코드 블록에 부과되는 제한 사항은 무엇입니까?

<시간/>

정적 메서드 및 정적 블록

정적 메서드는 클래스에 속하며 클래스와 함께 메모리에 로드되므로 객체를 생성하지 않고도 호출할 수 있습니다. (클래스 이름을 참조로 사용).

반면 정적 차단 정적 키워드가 있는 코드 블록입니다. 일반적으로 정적 멤버를 초기화하는 데 사용됩니다. JVM은 클래스 로딩 시 메인 메소드보다 먼저 정적 블록을 실행한다.

예시

public class Sample {
   static int num = 50;
   static {
      System.out.println("Hello this is a static block");
   }
   public static void demo() {
      System.out.println("Contents of the static method");
   }
   public static void main(String args[]) {
      Sample.demo();
   }
}

출력

Hello this is a static block
Contents of the static method

정적 블록 및 정적 메서드에 대한 제한

정적 방법

  • 정적 컨텍스트에서 비정적 멤버(메서드 또는 변수)에 액세스할 수 없습니다.

  • this 및 super는 정적 컨텍스트에서 사용할 수 없습니다.

  • 정적 메소드는 정적 유형 데이터(정적 유형 인스턴스 변수)에만 액세스할 수 있습니다.

  • 정적 메서드를 재정의할 수 없습니다. 숨길 수 있습니다.

정적 블록

  • 정적 블록에서는 아무 것도 반환할 수 없습니다.

  • 정적 블록을 명시적으로 호출할 수 없습니다.

  • 정적 블록에서 예외가 발생하면 try-catch 쌍으로 이를 래핑해야 합니다. 던질 수 없습니다.

  • 수퍼 를 사용할 수 없습니다. 정적 블록 내부의 키워드.

  • 정적 블록의 경우 실행 순서를 동적으로 제어할 수 없으며 선언된 순서대로 실행됩니다.