Java/JAVA 100 문제 풀이

자바 part.1 문제풀이 - 메인 메서드, static, 키워드

진이최고다 2023. 6. 4. 21:04
public class variable {
	public static void main(String[] args) {
		
		System.out.println("Hello World");
	}
}

// 자바 메인 메서드에서 static 키워드의 역할에 대해서 설명해보시오. 

// 작성한 자바 코드를 실행시 static을 안쓰면 에러가 나는데, 그 이유가 무엇인지 같이 설명 해보시오.

// 이 문제는 static의 개념과 역할에 대해서 알고 있는지를 묻는 문제이다.


(1) static 키워드 : 자바에서 클래스 멤버(필드, 메서드, 중첩 클래스)에 적용되며, 특정 멤버가 클래스 수준에 속함을 나타낸다.
  • static 키워드가 사용된 멤버는 해당 클래스의 인스턴스를 생성하지 않고도 호출할 수 있다.

 

(2) 자바의 'main' 메서드에서 'static' 키워드의 역할은 다음과 같다.

1. 진입점(Entry Point) : 'main' 메서드는 프로그램의 실행 진입점(Entry Point)이다. 자바프로그램이 실행되면 가장 먼저 'main' 메서드가 호출되어 프로그램의 실행 흐름을 시작한다. static 키워드를 사용하여 'main' 메서드를 클래스 수준에 속하게함으로써 프로그램 시작시 클래스의 인스턴스 생성 없이 호출할 수 있게된다.

 

2. 클래스 메서드 : 'main' 메서드는 클래스 메서드로 선언되어야 한다. 클래스 메서드는 클래스 수준에 속하므로, 클래스의 인스터스 없이도 호출할 수 있다. 따라서 'main' 메서드를 실행하기 위해서는 클래스의 인스턴스 생성이 필요하지 않다.

 

(3) static 키워드를 사용하지 않고 main메서드를 작성하면 컴파일 에러가 발생한다.
  • 클래스 메서드가 아닌 인스턴스 메서드로 작성되면, 'main'메서드는 객체의 상태를 변경하는 작업 등의 동작을 수행할수 있다. 하지만 프로그램이 실행될 때 객체의 인스턴스가 생성되거 전이므로, 인스턴스 메서드를 호출할 수 없다. 따라서 main메서드는 클래스 수준에 속해야 하고, static키워드를 사용하여 클래스 메서드로 선언되어야 한다.

요약하면 'static' 키워드를 사용하여, 'main'메서드를 클래스 수준에 속하게 함으로써 프로그램 시작 시 클래스의 인스턴스 생성 없이 호출할 수 있다. 이는 프로그램의 진입점을 제공하고, 객체의 인스턴스 생성과는 독립적으로 실행될수 있도록 한다.
  • 자바 프로그램을 실행하면 static으로 지정된 메서드를 찾아서 먼저 메모리영역에 할당 시킨다.
  • static으로 지정된 메서드가 여러개인 경우에는 객체를 생성하는 것과 상관없이 모두 메모리에 할당시킨다.
  • 그 후, 'main'으로 이름이 만들어진 메서드가 있는지 찾아서, 그 메서드를 가장먼저 시작점의 메서드로 호출시킨다.

 

 

 

 

인프런 - 예제로 공부하는 java 100 문제풀이.part.1