JAVA LV 1

변수란?

Posted by Gihoon on March 8, 2023

- 변수란?

수학에서 ‘변수’를 ‘변하는 수’라고 정의하지만 프로그래밍 언어에서의 변수란, 값을 저장할 수 있는 메모리상의 공간을 의미한다. 이 공간에 저장된 값은 변경될 수 있기 떄문에 ‘변수’라는 수학용어의 정의와 상통하는 면이 있어서 이렇게 정의 한다.

‘변수란, 단 하나의 값을 저장할 수 있는 메모리 공간”

- 변수의 선언과 초기화

변수를 사용하려면 먼저 변수를 선언해야한다. int age // age라는 변수를 선언

‘변수타입’은 변수에 저장될 값이 어떤 타입인지를 지정하는 것이다. 저장하고자 하는 값의 종류에 맞게 변수의 타입을 선택해서 적어주어야 한다. 자바는 정수형, 실수형, 문자형 등 다향한 타입이 존재한다.

‘변수이름’은 말그대로 변수에 붙인 이름이다. ‘값을 저장할 수 있는 메모리 공간’ 이므로 변수의 이름은 메모리 공간에 이름을 붙여주는 것이다. 그래야 그 이름을 이용해서 저장공간에 저장하고, 저장된 값을 읽어오기도 하는 것이다. 당연한 얘기지만 같은 이름의 변수가 여러 개 존재해서는 안된다. 서로 구별 되어야 한다. 변수를 선언하면 메모리의 빈 공간에 ‘변수타입’에 알맞은 크기의 저장공간이 확보되고, 앞으로 이 저장공간은 ‘변수이름’을 통하여 사용할수 있게 된다. 위의 문장은 변수 ‘age’를 선언한다. 이 변수는 ‘나이’를 저장하기 위한 것이고 나이는 ‘정수’이므로 변수의 타입은 ‘int 라고 지정하였다. 타입 type 에 관해서는 뒷쪽에서 자세히 다룰것이다.

변수의 초기화

변수를 선언한 이후부터는 변수를 사용할 수 있으나, 그전에 반드시 변수를 ‘초기화’해야한다. 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 ‘알수 없는값’ 이 남아 있을수 있기 떄문이다. 변수에 값을 저장할 떄는 대입연산자 ‘=’ 를 이용한다. 대입연산자의 왼쪽에는 반드시 변수가 와야한다. ing age = 25; // 변수 age를 선언하고 25로 초기화 한다,

“변수의 초기화란 변수를 사용하기 전에 처음으로 값을 지정하는 것이다”

변수에 지정된 값을 어떻게 읽어 오는지는 예제를 통해 알아보자.

아래 예제는 두 변수의 값을 교환하는 것으로 마치 두 컵에 담긴 내용물을 바꾸려면 컵이 하나 더 필요한 것과 같은 이치이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class Hello {



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

int x = 10, y = 20;

int tmp = 0;

System.out.println("x:"+x+"y:"+y);

​

​

tmp = x;

x = y;

y = tmp;

​

System.out.println("x:"+x+"y:"+y);

}

​

}


실행결과

x:10y:20

x:20y:10

덧셈 연산자 ‘+’는 두 값을 더하기도 하지만, 문자열과 숫자를 하나로 결합 하기도 한다. 문자열은 큰 따옴표로 “” 묶은 연속된 문자를 말하는데, 문자열과 문자열 결합에 대한 내용은 후에 다룬다.

- 변수의 명명규칙

‘변수의 이름’처럼 프로그래밍에서 사용되는 모든 이름을 ‘식별자’라고 한다. 식별자는 같은 영역 내에서 서로 구분 되어야 하며 규칙을 지켜야 한다. 그 규칙에는 아래에 있는 것과 같다.

  • 대소문자가 구분되며 길이에 제한이 없다.
  • 예약어를 사용해서는 안된다. (예약어: 자바에서 미리 정해둔 명령어
  • 숫자로 시작해서는 안된다
  • 특수문자는 ‘_’ 와 ‘$’만을 허용한다.

그 외에 자바 프로그래머들에게 권장하는 규칙은 다음과 같다.

  • 클래스 이름의 첫 글자는 항상 대문자로 한다. - 변수와 메서드의 이름의 첫글자는 항상 소문자로 한다.
  • 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다. ( StringBuffer)
  • 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 ‘_‘로 구분한다.

위 의 규칙들은 꼭 지켜야 하는 것은 아니지만 코드를 쉽게 이해하기 위한 개발자들 사이의 암묵적인 약속이다.