inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

나도코딩의 자바 기본편 - 풀코스 (20시간)

상속 (전반전)

메인 메소드의 전달인자로는 String[] args 만 사용하는 이유가 뭔가요?

211

dmkim919

작성한 질문수 2

0

 main 메소드는

public void main(String[] args) {

처럼 괄호 안에 String[] args만 사용해야 하나요?

String 말고 Int 나 Double 등 다른 자료형을 사용하면 무슨 문제가 있나요?

 

java 객체지향

답변 1

0

나도코딩

안녕하세요?

자바 프로그램을 명령 창에서 직접 실행시키면서 인자(args) 를 전달하려면 이런 식으로 할 수 있습니다.

java MyClass apple banana orange ...

그러면 main 메소드의 String[] args 에는 각각 다음과 같이 값이 대입되어 프로그램 내에서 사용할 수 있지요.

args[0] = "apple";
args[1] = "banana";
args[2] = "orange";
...

그런데 만약 String[] 이 아닌 Int 나 Double 이라면 위와 같은 형태의 문자열은 올바로 저장을 할 수 없게 될 것입니다. 반면에 "1", "3.14" 와 같이 정수나 실수를 문자열로 감싼 형태라면 코드 내에서 정수나 실수 형태로 형 변환을 할 수 있지요.

가령 자바 프로그램을 이렇게 실행시켰을 때

java MyClass 1 3.14

코드 내에서는 다음과 같이 쉽게 정수, 실수로 변환하여 사용이 가능합니다.

// "1" 을 정수로 변환
int intValue = Integer.parseInt(args[0]);

// "3.14" 를 실수로 변환
double doubleValue = Double.parseDouble(args[1]);

이런 이유로 main 메소드의 전달값은 정수나 실수 대신 문자열 형태로 입력받는 것이 가장 안전하고 합리적인 선택이 아닐까요? 😊

감사합니다.

자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?

1

145

2

static이 뭐였는지 기억이 안나요 ㅜㅜ

0

117

2

Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의

0

70

1

사고력 키우는 법이 어떤게 있나요?

0

93

2

getter setter

0

101

2

섹션9. 66 메소드 오버로딩 시 질문이 있습니다.

0

78

1

안녕하세요 갑자기 프로그램 에러가 떠서 안되네요

0

75

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

114

2

혹시 이건 수학적 사고가 부족한 걸까요?

0

152

2

영상이 재생이 안됩니다.

0

167

3

이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.

0

116

2

응용이 어렵습니다.

0

205

2

IntelliJ가 보이지 않습니다.

0

183

3

JDK 버전 문의

0

128

2

BlackBox 파일 내에서 메소드 정의

0

136

1

동기화

0

120

2

Iterator 문의

0

104

1

코드 순서 문의

0

141

1

클래스 메소드

0

149

2

Quiz_05 관련 질문드립니다 !

0

118

2

다운로드가 안됩니다

0

165

2

다형성

0

119

2

HashMap

0

80

2