본문 바로가기
Study/JAVA

[Java] 2-1. 변수(variable)

by jeongwle 2022. 8. 2.
728x90
반응형

 

변수(variable)

중요한 프로그래밍 능력 중의 하나가 바로 값을 잘 다루는 것이다. 값을 저장하는 공간인 변수를 잘 이해하고 활용하는 것은 그 능력을 얻기 위한 첫걸음이니 첫 단추를 잘 끼워보자.

 

1. 변수란?

수학에서 변수를 변하는 수 라고 정의하지만 프로그래밍언어에서의 변수란 단 하나의 값을 저장할 수 있는 메모리상의 공간을 의미한다. 이 공간에 저장된 값은 변경될 수 있기 때문에 변수라는 수학용어의 정의와 상통하는 면이 있어 이렇게 이름붙여졌다. 하나의 변수에 단 하나의 값만 저장할 수 있으므로, 새로운 값을 저장하면 기존의 값은 사라진다.

 

2. 변수의 선언과 초기화

변수를 사용하려면 먼저 변수를 선언해야 한다. 변수의 선언방법은 다음과 같다.
int age; // age 라는 이름의 변수를 선언 int -> 변수 타입, age -> 변수 이름

변수 타입은 변수에 저장될 값이 어떤 타입(type)인지를 지정하는 것이다. 저장하고자 하는 값의 종류에 맞게 변수의 타입을 선택해서 적어주면 된다. 자바는 정수형, 실수형, 문자형 등 다양한 타입을 제공한다.

변수 이름은 말 그대로 변수에 붙인 이름이다. 변수는 값을 저장할 수 있는 메모리 공간이므로 변수의 이름은 메모리 공간에 이름을 붙여 주는 것이다. 그 이름을 이용하여 저장공간에 값을 저장하고, 저장된 값을 읽어오기도 할 수 있다. 같은 이름의 변수가 여러개 존재해서는 안된다. 서로 구별될 수 있어야 하기 때문이다.

변수를 선언한 이후부터는 변수를 사용할 수 있으나, 그 전에 반드시 변수를 초기화(initialization)해야 한다. 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 알 수 없는 값(쓰레기 값, garbage value)이 남아 있을 수 있기 때문이다.
int age = 25; // 변수 age를 선언하고 25로 초기화 한다.

// 변수 선언 및 초기화 방법 1
int a;
int b;
int x = 0;
int y = 0;

// 변수 선언 및 초기화 방법 2
int a, b;
int x = 0, y = 0;​

방법1과 방법2는 같은 의미의 코드이다. 변수는 한 줄에 하나씩 선언하는 것이 보통이지만, 타입이 같은 경우 콤마를 구분자로 여러 변수를 한 줄에 선언하기도 한다.

변수의 종류에 따라 변수의 초기화를 생략할 수 있는 경우도 있지만, 변수는 사용되기 전에 적절한 값으로 초기화 하는 것이 좋다.

 

3. 변수의 명명규칙

변수의 이름처럼 프로그래밍에서 사용하는 모든 이름을 식별자(identifier)라고 하며 식별자는 같은 영역 내에서 서로 구분될 수 있어야 한다. 그리고 식별자를 만들 때는 다음과 같은 규칙을 지켜야 한다.

1. 대소문자가 구분되며 길이에 제한이 없다.
    - True와 true는 서로 다른 것으로 간주된다.
2. 예약어를 사용해서는 안된다.
    - true는 예약어라서 사용할 수 없지만 True는 가능하다.
3. 숫자로 시작해서는 안된다.
    - top10은 허용하지만 7up은 허용되지 않는다.
4. 특수문자는 _ 와 $ 만을 허용한다.
    - $harp는 허용되지만 S#arp는 허용되지 않는다.

예약어는 키워드 또는 리저브드 워드(reserved word)라고 하는데 프로그래밍언어의 구문에 사용되는 단어를 뜻한다. 그래서 예약어는 클래스나 변수, 메서드의 이름으로 사용할 수 없다.

abstract assert boolean break byte case
catch char class const continue default
do double else enum extends false
final finally float for if goto
implements import instanceof int interface long
native new null package private protected
public return short static strictfp super
switch synchronized this throw throws transient
true try void volatile while  
※ goto와 const는 실제로 사용되지 않으며 assert는 JDK1.4부터 enum은 JDK1.5부터 새로 추가되었다.

 

728x90
반응형

'Study > JAVA' 카테고리의 다른 글

[Java] 3-2. 단항 연산자  (0) 2022.08.30
[Java] 3-1. 연산자  (0) 2022.08.30
[Java] 2-5. 형변환  (0) 2022.08.03
[Java] 2-2. 변수의 타입  (0) 2022.08.02
[Java] Java의 정석  (0) 2022.08.01

댓글