public static void main(String[] args)
1) 이게 무엇일까?
Java 프로그램의 진입점(Entry Point)을 나타내는 메소드 시그니처입니다.
이 메소드는 Java 프로그램이 실행될 때 자동으로 호출되며, 프로그램의 실행을 시작하는 역할을 합니다.
2) 하나씩 분석해보자
● 구조
[접근 제어자] [키워드] [반환 타입] 메소드이름([스트링타입 배열 args]) {
public static void main (String[] args)
}
① public
Java의 접근제어자(public, private, protected, default) 중 하나입니다.
접근제어자를 통해 특정 메소드에 접근 제약을 두는데
public은 프로젝트 내에서 자유롭게 접근할 수 있게 해줍니다.
즉, main 메소드를 다른 클래스에서 접근할 수 있도록 공개적으로 설정합니다.
② static
static은 '정적'이라는 의미로, 메소드, 멤버, 블록 등에 붙어 정적 메소드, 정적 멤버, 정적 블록으로 바꾸어줍니다.
메소드가 선언되고나면 클래스의 객체화가 필요하지만,
static으로 선언되고나면 클래스의 인스턴스화 없이 직접 호출할 수 있게 만들어줘서
main메소드를 클래스의 객체화 없이 바로 사용 가능하게 해줍니다.
③ void
메소드가 반환되는 타입이 없을 때는 void를 붙여주게 됩니다.
main 메소드의 경우, 완료된 경우 반환되는 값 없이 프로그램이 종료되다보니
반환해줄 필요가 없어 'void'를 붙여주는 것입니다.
위 그림에서 Method 1과 Method 2는 반환되는 메소드이므로 void가 없었을 것입니다.
반면에 main method는 실행 후 반환되는 값 없이 프로그램이 종료되므로, void가 있습니다.
④ main
메소드의 이름으로, Java 프로그램의 진입점을 나타내기 위해 사용됩니다.
⑤ String[] args
메소드를 실행되기 위해서는 '매개변수'라는 값이 필요합니다.
args라는 이름의 String(문자열) 타입의 [ ] 배열을 매개변수로 사용한다는 뜻입니다.
3) 요약
프로젝트 내에서 자유롭게 접근이 가능하고 (public)
객체화가 필요 없이 사용가능하고 (static)
종료된 후 반환할 필요가 없고 (void)
문자열 배열 타입의 args라는 매개변수를 가지는 (String[] args)
main이라는 이름의 메소드 (main)
2023.07.11 - [Java] - 메소드 선언 Method Declaration