분홍 머리 여자가 선실로 들어왔습니다. "인간 여자는 머리털이 모두 이런가?"하고 아미고는 생각했죠.
"안녕! 내 이름은 엘리너 캐리야. 엘리라고 불러도 돼. 난 여기 '걸랙틱 러시'호의 항해사야."
"안녕하세요, 항해사님." 아미고는 힘겹게 말했습니다.
"자바 언어에서 가장 흥미로운 부분인 변수를 설명할게."
"열심히 들을 게요. 그런데 변수가 뭐예요?"
"변수는 데이터를 저장하는 데 사용하는 특수한 개체거든. 어떤 데이터라도. 자바에서는 데이터를 모두 변수에 저장해. 변수를 이해하려면 상자를 생각해 봐."
"상자? 어떤 상자요?"
"그냥 낡은 상자 아무 거나. 숫자 13을 쓴 종이를 상자에 넣는다고 가정해 보자. 이제 그 상자에 값 13이 저장됐다고 말할 수 있어."
"자바에서 모든 변수는유형, 이름, 값이라는 세 가지 중요한 속성이 있지."
"좀 더 확실하게 설명해 줄래요?"
"그럴게. 이름은 변수들을 서로 구별하려고 사용하지. 상자에 붙이는 라벨처럼."
"변수 유형은 변수에 저장할 수 있는 값이나 데이터의 유형을 결정하고. 이를테면 모자 상자에는 모자를 넣고 신발 상자에는 신발을 넣는 것처럼."
"값은 변수에 저장된 특정 객체나 데이터, 혹은 정보인 거야."
"변수 유형을 좀 더 자세히 말해 줄 수 있나요?"
"그럴게. 자바에서 객체는 특정한 유형에 속해. 예를 들면 정수, 분수, 텍스트, 고양이, 집 등등."
"변수도 마찬가지야. 유형이 같은 것끼리만 값을 저장할 수 있어."
"실생활에서도 알 수 있지. 모자 상자나 신발 상자처럼 다른 종류의 상자들은 서로 다른 것을 저장하는 데 사용하잖아."
"변수를 생성(또는 선언)하려면 다음과 같이 유형의 이름을 사용해야 해. TypeName variableName
."
"몇 가지 예를 들어 볼게. "
변수를 선언하려면 유형, 그리고 이름 순으로 |
설명 | |
---|---|---|
1 |
|
a라는 이름의 정수(int) 변수를 생성합니다. |
2 |
|
s라는 이름의 문자열(String) 변수를 생성합니다. |
3 |
|
c라는 이름의 실수(double) 변수를 생성합니다. |
"가장 일반적인 두 가지 유형이 정수(단어 int를 사용하여 선언)와 텍스트(단어 String을 사용하여 선언)입니다."
"double은 뭔가요?"
"소수 또는 실수를 Doubles라고 해."
"변수에 유형, 이름, 값의 세 가지 속성이 있다고 하셨지만, 저는 두 가지 속성만 알겠어요. 변수에는 어떻게 값을 지정하죠?"
"그러면 상자 이야기로 돌아가서, 42번을 쓴 종이를 상자에 넣는다면 이제 그 상자에는 42라는 값이 저장된 거야."
"그래요."
"특수(지정) 연산자를 사용하여 변수에 값을 지정하는데, 여기서 지정이란 변수에서 다른 변수로 값을 복사한다고 봐야 해. 값을 옮기는 게 아니라 값을 복사하는 거야. 디스크에 있는 파일처럼. 이렇게 보여."
코드 | 설명 | |
---|---|---|
1 |
|
변수 i에 값 3을 지정합니다. |
2 |
|
변수 a에 값 1을 지정합니다. 변수 b에 값 2를 지정합니다. |
3 |
|
변수 x에 값 3을 지정합니다. 다음 줄에서 x의 값이 1 증가하여 x는 4가 됩니다. |
"지정 연산을 수행하려면 등호 (=
)를 사용해야 해."
"다시 한 번 말할게. 이 연산은 비교하는 게 아니라 등호 오른쪽에 있는 값을 왼쪽 변수에 복사하는 거다. 비교하려면 자바에서는 이중 등호 (==
)를 사용한다."
"저는 고양이를 변수에 넣는 방법을 알아요. 그건 프로그램과 비슷해요."
"고양이를 가두는 방법:
1. 빈 상자를 가져온다.
2. 잠깐만."
"아냐, 아미고. 상자에 고양이를 한 마리만 집어 넣을 수 있어. 음, 변수에 값을 하나만 지정할 수 있다는 뜻이야.
"그렇군요. 변수를 만드는 예를 좀 더 들어 주시겠습니까?"
"알았어. 한번 더 말할 게. 변수를 생성(또는 선언)하려면 이름«TypeName variableName
»을 사용해야 해."
코드 | 설명 | |
---|---|---|
1 |
|
s라는 이름의 String 변수가 생성됩니다.이 변수는 텍스트를 저장할 수 있습니다. |
2 |
|
x라는 이름의 int 변수가 생성됩니다.이 변수는 정수를 저장할 수 있습니다. |
3 |
|
a, b, c, d라는 이름의 int 변수가 생성됩니다.이 변수들은 정수를 저장할 수 있습니다. |
"아, 이제 알겠어요!"
"명심해. 같은 메소드 내에서 동일한 이름의 두 변수를 생성할 수 없어."
"다른 메소드 내에서는 요?"
"그건 가능해. 각각 다른 집에 상자를 두는 것과 마찬가지야."
"좋아하는 것 아무 거나 변수의 이름으로 쓸 수 있을까요?"
"거의 다 가능해. 변수 이름에는 공백 문자, +, - 따위를 포함해선 안 돼. 변수의 이름에는 그냥 글자와 숫자를 사용하는 것이 가장 좋아."
"자바에서는 대소 문자를 구별한다는 걸 명심해. int a
와 Int a
는 달라."
"그런데 자바에서는 변수가 생성됨과 동시에 값을 지정할 수 있어. 이렇게 하면 시간과 공간을 모두 절약할 수 있지."
간편 코드 | 동등하지만 긴 코드 | |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
"그 방식이 훨씬 더 간편하고 명료해요."
"그게 우리가 교육하는 방식이지."
"자바 초보자들은 int (정수)와 String (텍스트 또는 문자열)형에 익숙해져야 해."
"int형은 변수에 숫자를 저장하여 덧셈, 뺄셈, 곱셈, 나눗셈 등의 연산을 수행할 수 있지."
코드 | 설명 | |
---|---|---|
1 |
|
x는 1 y는 2 z는 20+4+3이니까 27이 됩니다. |
2 |
|
a는 5 b는 1 c는 4*6이니까 24가 됩니다. |
3 |
|
a는 64 b는 8 c는 2 d는 6 |
"알았습니다. 프로그래밍은 늘 이렇게 쉬운가요?"
"실제로 그래."
"좋아라! 그래, 다음은 뭘 배우나요?"
"String형은 '스트링 또는 문자열'로도 알려진 텍스트 줄을 저장하지."
"자바에서 문자열을 할당하려면 텍스트를 따옴표 안에 두어야 해. 몇 가지 예를 들어 볼게."
코드 | 설명 | |
---|---|---|
1 |
|
s 에는 "Amigo" 가 들어 있습니다. |
2 |
|
s 에는 "123" 이 들어 있습니다. |
3 |
|
s 에는 "123 + 456" 이 들어 있습니다. |
"알았습니다. 별로 어려워 보이지 않네요."
"여기 재미있는 사실이 하나 더 있어."
"문자열은 더하기 기호(+
)로 연결할 수 있지. 예를 들어 볼게."
코드 | 설명 | |
---|---|---|
1 |
|
s 에는 "Amigo is the best" 가 들어 있습니다. |
2 |
|
s 에는 기호가 전혀 없는 빈 문자열이 들어 있습니다. |
3 |
|
s 에는 "Amigo333" 이 들어 있습니다. |
"그렇다면 숫자에 문자열을 더할 수 있어요?"
"그래, 하지만 문자열과 숫자를 더하면 결과는 항상 문자열이 된다는 걸 명심해."
"그건 예제에서 알 수 있었어요."
"그렇게 똑똑하면, 화면에 변수를 표시하는 방법을 알아보지."
"흠. 변수요? 화면에? 전혀 모르겠는데요."
"사실 간단해. 화면에 뭔가를 출력하려면, 우리는 System.out.println()
명령을 사용해서 출력하려는 것이 무엇이든 인수로 전달하지."
코드 | 화면 출력 | |
---|---|---|
1 |
|
아미고 |
2 |
|
아미고 |
3 |
|
아미고 |
4 |
|
아미고 |
"하하! 그렇게 하니까 모든 게 훨씬 더 분명한데요."
"잘됐네. 여기 있는 연습 문제 세 개를 풀어 봐."
GO TO FULL VERSION