프로그래밍/JAVA

public static void main(String[] args){}

AkaGeun 2018. 4. 3. 09:00

1. public static void main(String[] args){} ????

 - java로 처음 "Hello, World!"를 쓸 때 써본거.

 - java application의 시작점


2. 소스

 1) 전체보기

/**
* Java Entry Class
*
* @author geunspage
*/
public class MainTest {

public static void main(String[] args) {
System.out.print("Hello, World!");
}
}


 2) public

  (1) 접근 제어자(Access Modifier)

- defualt, private, protected, public

- private -> default -> protected -> public 순으로 보다 많은 접근이 가능하다.

  (2) 해당 값 변경 또는 제거 할 경우

/**
* Java Entry Class
*
* @author geunspage
*/
public class MainTest {

private static void main(String... args) {
System.out.print("Hello, World!");
}
}

 - 찾지 못함.

오류: MainTest 클래스에서 기본 메소드를 찾을 수 없습니다. 다음 형식으로 기본 메소드를 정의하십시오.

   public static void main(String[] args)

또는 JavaFX 애플리케이션 클래스는 javafx.application.Application을(를) 확장해야 합니다.


 3) static

  (1) 설명

- java가 처음 실행되면 클래스의 객체가 없기 때문에, 해당 메소드는 static(인스턴스를 생성하지 않고도 호출이 가능해짐)이어야 접근이 가능하다.


  (2) 해당 값 변경 또는 제거 할 경우

/**
* Java Entry Class
*
* @author geunspage
*/
public class MainTest {

public void main(String... args) {
System.out.print("Hello, World!");
}
}

 - 찾지 못함.

오류: MainTest 클래스에서 기본 메소드가 static이(가) 아닙니다. 다음 형식으로 기본 메소드를 정의하십시오.

   public static void main(String[] args)


 4) void 

  (1) 설명

- Method의 리턴 유형

- void는 아무것도 돌려주지 않겠다는 내용.

- Main Method의 실행이 끝나면 프로그램이 종료되기 때문에, 아무것도 돌려줄 필요가 없다.


  (2) return 0 추가


  (3) 중간에 종료하기

- 아래 "Hello, World! 2" 는 실행되지 않는다.

- 아래와 같이 작성할 경우, 대부분의 툴에서는 Dead Code라고 뜬다.



 5) main

  (1) java application 실행시 main 으로 실행한다는 약속된 값.

  (2) 변경시

/**
* Java Entry Class
*
* @author geunspage
*/
public class MainTest {

public static void mainTest(String... args) {
System.out.print("Hello, World!");
}
}

  - 찾지 못한다.

오류: MainTest 클래스에서 기본 메소드를 찾을 수 없습니다. 다음 형식으로 기본 메소드를 정의하십시오.

   public static void main(String[] args)

또는 JavaFX 애플리케이션 클래스는 javafx.application.Application을(를) 확장해야 합니다.


 6) String[] args or String... args

  (1) command line arguments 

  (2) 예제

/**
* Java Entry Class
*
* @author geunspage
*/
public class MainTest {

public static void main(String... args) {
for (String arg : args) {
System.out.println("arg : " + arg);
}

}
}

 - 실행(intellij)


 - 실행 Command Line

javac MainTest.java

java MainTest 1 2 3


 - 결과