네, 가능합니다. Java에서는 public static void main()의 선언 순서를 static public void main()으로 바꾸어도 컴파일 타임이나 런타임 오류가 전혀 발생하지 않습니다. Java에서는 접근 제한자(접근 제어자)를 어떤 순서로든 선언할 수 있으며, 메서드 이름은 항상 마지막에, 반환 타입은 그 바로 앞에 위치해야 하고 나머지 한정자들은 자유롭게 배치할 수 있습니다. 다만 Java 코딩 표준에 따르면 접근 제한자(public, private, protected)를 가장 앞쪽에 두는 것이 권장됩니다.
JVM은 메서드의 이름과 시그니처를 기준으로 main() 메서드를 찾기 때문에 한정자의 작성 순서는 실행 결과에 영향을 주지 않습니다.
문법(Syntax)
public static void main(String args[]) {
// some statements
}
예제
class ParentTest {
int age = 10;
public int getAge() {
age += 25;
return age;
}
}
public class Test {
// 여기서 static public void main(String args[])로 선언
static public void main(String args[]) {
ParentTest pt = new ParentTest();
System.out.println("Age is: " + pt.getAge());
}
}
위 예제에서는 일반적인 public static void main() 대신 static public void main()으로 선언했지만, 코드는 어떠한 오류도 없이 정상적으로 실행됩니다.
실행 결과
Age is: 35