Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java main 메서드에서 public 대신 private을 쓰면 어떻게 될까?

Java 프로그램의 진입점 역할을 하는 main 메서드에는 반드시 public 접근 제어자를 사용해야 합니다. 만약 private으로 바꾸면 어떤 일이 발생하는지, 두 가지 예제를 통해 직접 확인해 보겠습니다.

1. main 메서드에 'public'을 사용한 경우

public class Demo{
    public static void main(String args[]){
        System.out.println("This is a sample only");
    }
}

실행 결과

This is a sample only

Demo라는 클래스 안에 public으로 선언된 main 메서드가 있습니다. 이 코드는 정상적으로 컴파일되고 실행되며, 콘솔에 지정한 메시지를 출력합니다.

2. 'public'을 'private'으로 바꾼 경우

public class Demo{
    private static void main(String args[]){
        System.out.println("This is a sample only");
    }
}

실행 결과

Error: Main method not found in class Demo, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

이번에는 Demo 클래스의 main 메서드가 public이 아닌 private으로 선언되어 있습니다. 이 경우 코드는 정상적으로 실행되지 않고, "main 메서드를 찾을 수 없다"는 오류가 발생합니다. 그 이유는 main 메서드가 private이기 때문에 외부에서 접근할 수 없기 때문입니다.

왜 main 메서드는 public이어야 할까?

프로그램이 시작될 때 JVM(Java Virtual Machine)은 클래스 외부에서 main 메서드를 호출합니다. 따라서 main 메서드가 private으로 선언되면 JVM이 해당 메서드에 접근할 수 없어 프로그램 실행 자체가 불가능해집니다. 결론적으로 main 메서드는 항상 아래와 같은 형태로 선언해야 합니다.

public static void main(String[] args)