public static void main(String[] args) - Java 기본 메서드
소개
Java main
메서드는 일반적으로 Java 프로그램을 실행하기 위한 진입점이므로 Java 프로그래밍을 시작할 때 가장 먼저 배우는 메서드입니다. main
메서드는 다른 메서드를 실행하거나 호출하는 코드를 포함할 수 있으며 프로그램의 일부인 모든 클래스에 배치할 수 있습니다. 보다 복잡한 프로그램에는 일반적으로 main
메서드만 포함하는 클래스가 있습니다. main
메서드를 포함하는 클래스는 어떤 이름이든 가질 수 있지만 일반적으로 Main
클래스만 호출할 수 있습니다.
다음 예제에서 main
메서드를 포함하는 클래스를 Test
라고 합니다.
public class Test {
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
이 문서에서는 main
메서드의 각 구성 요소가 무엇을 의미하는지 알아봅니다.
Java 기본 메소드 구문
main
메서드의 구문은 항상 다음과 같습니다.
public static void main(String[] args){
// some code
}
String
배열 인수의 이름만 변경할 수 있습니다. 예를 들어 args
를 myStringArgs
로 변경할 수 있습니다. String
배열 인수는 String... args
또는 String args[]
로 작성할 수 있습니다.
공공의
JRE가 이 메소드에 액세스하고 실행할 수 있도록 main
메소드의 액세스 수정자는 public
이어야 합니다. 메서드가 공개되지 않으면 액세스가 제한됩니다. 다음 예제 코드에서 main
메서드에는 public
액세스 한정자가 없습니다.
public class Test {
static void main(String[] args){
System.out.println("Hello, World!");
}
}
프로그램을 컴파일하고 실행할 때 main
메서드가 공개되지 않고 JRE에서 찾을 수 없기 때문에 다음 오류가 발생합니다.
- javac Test.java
- java Test
OutputError: Main method not found in class Test, please define the `main` method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
공전
Java 프로그램이 시작될 때 현재 클래스의 개체가 없습니다. main
메소드는 JVM이 클래스를 메모리에 로드하고 클래스 인스턴스를 생성하지 않고 main
메소드를 호출할 수 있도록 정적
이어야 합니다. 첫 번째. 다음 예제 코드에서 main
메서드에는 static
한정자가 없습니다.
public class Test {
public void main(String[] args){
System.out.println("Hello, World!");
}
}
프로그램을 컴파일하고 실행할 때 main
메서드가 정적
이 아니므로 다음과 같은 오류가 발생합니다.
- javac Test.java
- java Test
OutputError: Main method is not static in class Test, please define the `main` method as:
public static void main(String[] args)
무효의
모든 Java 메소드는 리턴 유형을 제공해야 합니다. Java main
메서드 반환 유형은 아무 것도 반환하지 않기 때문에 void
입니다. main
메서드 실행이 완료되면 Java 프로그램이 종료되므로 반환된 개체가 필요하지 않습니다. 다음 예제 코드에서 main
메서드는 반환 유형이 void
일 때 무언가를 반환하려고 시도합니다.
public class Test {
public static void main(String[] args){
return 0;
}
}
프로그램을 컴파일할 때 Java는 반환 유형이 void
인 경우 반환 값을 기대하지 않기 때문에 다음과 같은 오류가 발생합니다.
- javac Test.java
OutputTest.java:5: error: incompatible types: unexpected return value
return 0;
^
1 error
기본
Java main
메서드의 이름은 항상 main
입니다. Java 프로그램이 시작되면 항상 main
메서드를 찾습니다. 다음 예제 코드는 myMain
으로 이름이 변경된 main
메서드를 보여줍니다.
public class Test {
public static void myMain(String[] args){
System.out.println("Hello, World!");
}
}
프로그램을 컴파일하고 실행하면 JRE가 클래스에서 main
메서드를 찾을 수 없기 때문에 다음과 같은 오류가 발생합니다.
- javac Test.java
- java Test
OutputError: Main method not found in class Test, please define the `main` method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
문자열[] 인수
Java main
메서드는 String
배열 유형의 단일 인수를 허용합니다. 배열의 각 문자열은 명령줄 인수입니다. 런타임 시 명령줄 인수를 사용하여 프로그램 작업에 영향을 미치거나 프로그램에 정보를 전달할 수 있습니다. 다음 예제 코드는 프로그램을 실행할 때 입력하는 명령줄 인수를 인쇄하는 방법을 보여줍니다.
public class Test {
public static void main(String[] args){
for(String s : args){
System.out.println(s);
}
}
}
프로그램을 컴파일한 다음 공백으로 구분된 몇 개의 명령줄 인수로 실행하면 인수가 터미널에 인쇄됩니다.
- javac Test.java
- java Test 1 2 3 "Testing the main method"
Output1
2
3
Testing the main method
결론
이 기사에서는 Java main
메서드의 각 구성 요소에 대해 배웠습니다. 더 많은 Java 자습서로 학습을 계속하십시오.