본문 바로가기
language/Java

[Java] public static void main(String args[]){}란? 이유

by 스파이디웹 2022. 9. 5.
728x90

자바의 메인 메소드

메인 메소드란 Java로 구현된 프로그램이 시작될 때 가장 먼저 실행되는 메소드

자바의 메인메소드를 작성할 때는 public static void main(String[] args){}구조로 작성


public(접근제어자)

  • public은 접근제어자의 일종
  1. private
  2. default
  3. protected
  4. public

*private -> default -> protected -> public 순으로 보다 많은 접근을 허용

 

  • public 접근제어자는 어느 클래스에서든 해당 객체를 참조할 수 있다는 뜻
  • JVM(Java Virtual Machine)이 접근 하기 위해서 public을 사용
  • 다른 접근 제어자를 사용하면 프로그램이 실행되지 않음
하지만 접근제어자를 이용하면 프로그래머의 코딩 실수를 방지할 수 있고 기타 위험요소를 제거할 수 있는 등의 장점

private

접근제어자가 private으로 설정되었다면 private 이 붙은 변수, 메소드는 해당 클래스에서만 접근이 가능


default

접근 제어자를 별도로 설정하지 않는다면 접근 제어자가 없는 변수, 메소드는 default 접근 제어자가 되어 해당 패키지 내에서만 접근이 가능


protected

접근제어자가 protected로 설정되었다면 protected가 붙은 변수, 메소드는 동일 패키지의 클래스 또는 해당 클래스를 상속받은 다른 패키지의 클래스에서만 접근이 가능

 


static

  • static으로 뭔가를 선언하게 되는 경우, 자바가 컴파일 되는 시점에 정의(클래스 로드)
  • static 요소를 non-static 요소에서 호출하는 것은 불가능
main 메소드는 프로그램의 시작점이므로, 프로그램이 실행되면 제일 먼저 호출되는 메소드이기 때문에 객체를 생성하지 않은 채로 바로 작업을 수행해야 하기 때문에 static이어야 함

void

  • 메인 메소드의 반환 값의 타입
  • 타입이 void라는 것은 반환할 것이 없다는 의미
메인 메서드를 호출하는 JVM(Java Virtual Machine)에서 반환값을 요구하지 않으니 void타입을 사용(멀티 스레드 염두했기 때문)

 

참조:

https://jaehoney.tistory.com/37

728x90

댓글