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

Java에서 정적 블록과 생성자의 차이점은 무엇입니까?

<시간/>

정적 블록

  • 태틱 블록 클래스 로드 시 실행됩니다. .
  • 태틱 블록 메인() 메서드를 실행하기 전에 실행됩니다. .
  • 정적 차단 이름이 없습니다 프로토타입에서.
  • 클래스 로딩 시 실행해야 하는 로직이 필요한 경우 해당 로직을 정적 블록 내부에 배치해야 합니다. 클래스 로딩 시 실행되도록 합니다.

구문

static {
   //some statements
}

예시

public class StaticBlockTest {
   static {
      System.out.println("Static Block!");
   }
   public static void main(String args[]) {
      System.out.println("Welcome to Tutorials Point!");
   }
}

출력

Static Block!
Welcome to Tutorials Point!


생성자

  • 생성자 객체를 생성하는 동안 실행됩니다. 자바로.
  • 생성자 클래스의 객체를 생성하는 동안 호출됩니다.
  • 생성자의 이름 항상 클래스와 동일한 이름이어야 합니다. .
  • 생성자 객체에 대해 한 번만 호출되며 여러 번 호출됩니다 객체를 생성할 수 있기 때문입니다. 즉, 생성자는 객체가 생성될 때 자동으로 실행됩니다.

구문

public class MyClass {
   //This is the constructor
   MyClass() {
      // some statements
   }
}

예시

public class ConstructorTest {
   static {
      //static block
      System.out.println("In Static Block!");
   }
   public ConstructorTest() {
      System.out.println("In a first constructor!");
   }
   public ConstructorTest(int c) {
      System.out.println("In a second constructor!");
   }
   public static void main(String args[]) {
      ConstructorTest ct1 = new ConstructorTest();
      ConstructorTest ct2 = new ConstructorTest(10);
   }
}

출력

In Static Block!
In a first constructor!
In a second constructor!