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

Java의 main() 메소드가 항상 정적인 이유는 무엇입니까?

<시간/>

자바 메인() 메서드는 항상 정적이므로 컴파일러는 개체를 생성하지 않거나 클래스의 개체를 생성하기 전에 호출할 수 있습니다.

  • 모든 자바 프로그램에서 main() 메소드는 컴파일러가 프로그램 실행을 시작하는 시작점입니다. 따라서 컴파일러는 main() 메서드를 호출해야 합니다.
  • main()인 경우 정적이 아닌 경우 main()을 호출하는 동안 메소드 JVM은 해당 클래스를 인스턴스화해야 합니다.
  • 인스턴스화하는 동안 해당 클래스의 생성자를 호출해야 하지만 해당 클래스의 생성자가 인수를 취하면 모호성이 있습니다.
  • 클래스의 정적 메소드는 클래스의 객체를 생성하지 않고 클래스 이름만 사용하여 호출할 수 있습니다.
  • 메인() Java의 메소드는 공개로 선언되어야 합니다. , 정적 무효 . 이 중 하나라도 없으면 Java 프로그램이 컴파일되지만 런타임 오류가 발생합니다.

예시

class Book {
   public static void getBookInfo() { //static method
      System.out.println("Welcome to TutorialsPoint Library");
   }
}
public class Test {
   public static void main(String[] args) {
      //Call static method of Book class using class name only
      Book.getBookInfo();
   }
}

출력

Welcome to TutorialsPoint Library