본문 바로가기
얄코의 제대로 파는 자바/섹션6 클래스 더 알아보기

메인 메소드

by 백엔드 개발자 2024. 4. 15.

 

 

요약 :

 

  1. 메인메서드는 프로그램 시작시 호출되는 메서드라서 이름이 달라져서는 안된다.
  2. 클래스로 컴파일하고 실행시, 문자열을 나열하거나 해서 인자값을 전달할 수 있다.(인텔리제이 설정으로도 가능하다.)
  3. static으로 된 이유는 프로그램 시작시에 main함수를 호출해야 되는데, static이 아니면 객체를 생성해야 호출이 가능해서 실행이 아예 안된다. 즉, 프로그램 시작시에 객체 생성 없이도 호출할 수 있기 위해서 static으로 되어 있다.
  4. void로 되어 있는 이유도 다른 자료형으로 선언되면 그에 맞는 처리가 필요해지기 때문이다. 대부분은 그런 처리가 필요하지 않는다.

 

 

 

  • 자바 프로그램의 시작점
    • 작성된 모든 코드들의 엔트리
  • 메인 메소드가 포함된 클래스를 통해 프로그램을 실행

 

package sec06.chap05;

public class Ex01 {
    public static void main(String[] args) {
        System.out.println("메인 메서드 실행");
    }
}

 

메서드 이름 바꾸고 해보기


  • 메인 메서드가 없다고 나온다. main이라는 이름의 메서드는 프로그램의 시작점이 되는 클래스에 필요하다.

 

 

매개변수 활용해보기


  • 자바 프로그램을 실행할 때, 인자값을 나열해서 필요한 값을 가져다 사용할 수 있다.
  • 일일이 컴파일하면 너무 복잡하다는 단점이 부각된다.

 

 

인텔리제이 설정값으로 하는 방법

  • IntelliJ에서 실행
    • Edit Configuration 에서 메인 파일 설정, 매개변수 입력
      • 설정의 이름을 지정하여 저장하면 유용
    • 해당 설정으로 프로젝트 실행
      • 여러 설정 중에 선택하여 실행 가능

 

실습3


				if (args.length < 2) {
            System.out.println("메뉴와 맵기를 모두 입력해주세요.");
            return;
        }

        String menuName = args[0];
        String spicyLevel = args[1];

        if (spicyLevel.length() != 1) {
            System.out.println("맵기를 한 자리 숫자로 입력해주세요.");
            return;
        }
        if (!"0123456789".contains(spicyLevel)) {
            System.out.println("맵기는 숫자로 입력해주세요.");
            return;
        }

        System.out.printf("%s 맵기 강도 %s로 주문%n", menuName, spicyLevel);

 

  • vm 옵션에서 떡볶이 3 이런식으로 값을 넣고 실행시, main의 코드대로 맵기, 강도가 출력되는 것을 볼 수 있다.
  •  

 

 

 

 

출처 

  • 사이트, 검색명 (날짜)

'얄코의 제대로 파는 자바 > 섹션6 클래스 더 알아보기' 카테고리의 다른 글

레코드(java 16+)  (0) 2024.04.22
열거형  (0) 2024.04.17
익명클래스  (0) 2024.04.08
내부클래스  (0) 2024.04.07
패키지  (0) 2024.04.02