자바

자바 메인 클래스 public static void main(String[] args) 뜻 알기

Regain 2023. 10. 17. 09:30

전체 뜻


  자바 프로그램의 시작 시점을 정의하는 메소드 시그니처로, 다른 클래스에서 호출 가능하고 클래스 수준에 속하며 아무 값도 반환하지 않는 "main"메소드를 정의한다.

 

 

단어 별 뜻


1. public

  접근 제어자로, 이 메소드가 다른 클래스에서 접근이 가능하도록 하는 키워드이다. "public"으로 선언했다면 어떤 클래스에서도 호출할 수 있다.

(접근 제어자 더 알기는 아래 더보기 확인)

더보기

<접근 제어자 더 알기>

객체 지향 프로그래밍 언어에서 접근 가능성과 가시성을 제어하는 키워드로 총 4가지가 있다.

(1) public : 가장 개방적인 제어자로 어디에서든 접근 가능하도록 한다.

(2) private : 가장 제한적인 제어자로 해당 클래스의 내부에서만 접근이 가능하다.(다른 클래스에서 직접 접근할 수 없다)

(3) protected : 같은 패키지 내에서는 접근이 가능하며, 다른 패키지의 하위 클래스에서도 접근 가능하다.

(4) (default) : 접근 제어자를 지정하지 않으면 기본적으로 같은 패키지 내에서만 접근 가능하다.

>>> public void publicMethod() {
>>> // 어디서든 호출 가능
>>> }
>>>     
>>> private void privateMethod() {
>>> // 클래스 내부에서만 호출 가능
>>> }
>>>     
>>> protected void protectedMethod() {
>>> // 같은 패키지 및 하위 클래스에서 호출 가능
>>> }
>>>     
>>> void defaultMethod() {
>>> // 같은 패키지 내에서만 호출 가능
>>> }

 

2. static

  메소드가 클래스 수준에 속하고 객체 인스턴스에 연결되지 않음을 나타낸다. static은 복잡하여 많은 시간을 할애해야 설명이 가능하니 간단히 클래스 수준에서 실행되기에 static으로 선언한다 정도로 정리하자.

 

3. void

  메소드의 반환 타입을 나타낸다. main 메소드는 어떠한 값을 반환하지 않으므로 void를 사용한다.

(다른 클래스에서는 반환 값이 있다면 String, int 등 사용하고 return 값을 받게 된다)

 

4. main

  메소드의 이름이다. 모든 자바 프로그램은 시작점을 가지고 있는데 그 시작점을 "main 메소드"라고 부른다.

 

5. String[] args

  메소드의 매개변수(프로그램이 시작될 때 전달되는 값 또는 데이터) 목록이다. 이는 코딩할 때 잘 사용하지는 않으나 사용했던 예시를 생각해보면 리눅스에서 프로그래밍했던 파일을 실행할 때 사용했었다.

ex. python3 pythonFile.py 5000

예시는 파이썬으로 들었지만 유사하다. 위의 명령어를 사용하면 pythonFile.py라는 파이썬 파일이 실행되고 매개변수로 5000을 전달해줄 수 있다. 이같은 활용을 위해 붙여주는 코드이다.

 

 

추가


  자바 개발 환경에서 메인 함수 밑에 나오는 문구 "TODO Auto-generated method stub"가 주석처리되어 있다. 이는

  1. TODO, 해야 할 작업이 남았다
  2. Auto-generated, 메소드가 자동으로 생성되었다
  3. method stub, 구현이 필요하다 

즉, "main함수가 자동으로 생성되었지만 완성되지 않아 구현이 필요하다" 정도로 해석할 수 있다.

 

 

(이 글은 chat-gpt를 참고하였습니다)