웹사이트 검색

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 배열 인수의 이름만 변경할 수 있습니다. 예를 들어 argsmyStringArgs로 변경할 수 있습니다. 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에서 찾을 수 없기 때문에 다음 오류가 발생합니다.

  1. javac Test.java
  2. java Test
Output
Error: 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 메서드가 정적이 아니므로 다음과 같은 오류가 발생합니다.

  1. javac Test.java
  2. java Test
Output
Error: 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인 경우 반환 값을 기대하지 않기 때문에 다음과 같은 오류가 발생합니다.

  1. javac Test.java
Output
Test.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 메서드를 찾을 수 없기 때문에 다음과 같은 오류가 발생합니다.

  1. javac Test.java
  2. java Test
Output
Error: 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);
    	}
	
    }
}

프로그램을 컴파일한 다음 공백으로 구분된 몇 개의 명령줄 인수로 실행하면 인수가 터미널에 인쇄됩니다.

  1. javac Test.java
  2. java Test 1 2 3 "Testing the main method"
Output
1 2 3 Testing the main method

결론

이 기사에서는 Java main 메서드의 각 구성 요소에 대해 배웠습니다. 더 많은 Java 자습서로 학습을 계속하십시오.