언어(Language)/Java

[Java] 자바의 변수(Variable) 정리 (변수 선언, 초기화, 명명 규칙)

잇트루 2022. 9. 2. 18:48
반응형

변수(Variable)

변수는 값이 변할 수 있는 데이터를 임시적으로 저장하고 이를 사용하기 위한 수단이다. 컴퓨터는 메모리에 데이터를 저장한다. 여기서 메모리는 노트북이나 데스크톱에 존재하는 RAM에 해당한다. 메모리는 각 1byte 크기의 데이터를 저장할 수 있는 공간들이 모여서 이루어져 있으며, 각 메모리에는 고유 번호가 매겨져 있다. 이 고유 번호를 메모리 주소라 한다.

즉, 변수는 값을 저장할 수 있는 메모리 공간에 사람이 식별할 수 이름을 붙여 데이터를 저장하는 공간이다.

 

메모리

메모리 공간의 집합체, 각 메모리 공간에 데이터를 저장할 수 있다. 각 메모리 공간에는 위치를 가리키는 주소가 있다.

메모리 주소는 0xa1b2c3… 등의 형태로 존재하는데, 이러한 주소를 사람이 사용하기에는 식별하기가 매우 어렵다. 이러한 문제를 해결해 주는 것이 바로 변수이다.

 

다음과 같이 변수를 정의할 수 있다. 변수는 데이터 타입과 변수 이름을 공백으로 구분하여 선언할 수 있다.

// 데이터타입 변수이름 = 값;
int a = 5;

 

데이터 타입은 정수형, 실수형, 문자형, … 등 다양하게 존재한다. 다음은 자바에서 정수와 문자 데이터를 변수에 할당하여 선언하는 모습이다.

class VariableEx {
	public static void main(String[] args) {
		int num1 = 1;
		int num2 = 2;
		int num3 = 3;
		char ch1 = 'A';
		char ch2 = 'B';
		char ch3 = 'C';
	}
}

num1에는 1, num2에는 2, num3에는 3이라는 정수형 데이터가 대입되어 있고, ch1에는 A, ch2에는 B, ch3에는 C라는 문자형 데이터가 대입되어 있다. 위 코드를 실행시킬 시 메모리 공간에는 num1, num2, num3, ch1, ch2, ch3라는 이름과 1, 2, 3, A, B, C라는 데이터를 메모리 주소에 각각 저장될 것이다.

 

변수 선언과 할당

변수가 무엇이고, 왜 사용해야 하는지를 알게 되었으니, 변수 선언과 값을 할당하는 방법을 알아보도록 하자.

 

변수 선언

변수를 사용하려면 변수를 선언해야 한다. 변수를 선언할 때에는 저장하고자 하는 데이터 타입과 함께 변수 이름을 작성해주어야 한다. 다음은 자바에서 변수를 선언하는 코드이다.

class VariableEx {
	public static void main(String[] args) {
		// 정수형 데이터 변수 a 선언
		int a;
	}
}

다음과 같이 변수를 선언하면, a라는 변수에 정수형 숫자 데이터를 저장할 수 있다.

 

값 할당(초기화)

변수를 선언한 뒤에는 해당하는 변수에 값을 할당할 수 있다. 이 과정을 선언된 변수에 값을 할당했다고 해석할 수 있다. 변수에 값을 할당하기 위해서는 대입 연산자(=)를 사용해야 한다.

class VariableEx {
	public static void main(String[] args) {
		// 정수형 데이터 변수 a 선언
		int a;
		// 변수 a에 값 5를 할당(초기화)
		a = 5;
	}
}

이와 같이 변수 a를 선언한 뒤에 값을 할당할 수 있다. 값을 할당 함에 있어 변수 a와 5 사이에 대입 연산자(=)를 타이핑하여 선언한다.

 

값 할당(재할당)

a와 같이 변수 선언 이후 처음으로 값을 할당하는 것을 초기화라고 한다. 초기화 이후 값을 다시 변경할 수도 있으며, 이를 변수 재할당이라 한다.

class VariableEx {
	public static void main(String[] args) {
		// 정수형 데이터 변수 a 선언
		int a;
		// 변수 a 초기화
		a = 5;
		// 변수 a 재할당
		a = 10;
	}
}

이와 같이 변수는 초기화 이후 재할당을 통해 데이터를 유동적으로 바꿀 수 있다.

 

선언과 동시에 초기화

변수 선언과 값 할당을 동시에 할 수도 있다.

class VariableEx {
	public static void main(String[] args) {
		// 변수 선언과 동시에 초기화
		int a = 5;
		// 변수 a 재할당
		a = 10;
	}
}

 

자바의 변수 명명 규칙

프로그래밍 언어에서는 변수 이름을 지을 때 지켜야 할 규칙이 존재한다. 변수는 사용자가 원하는 대로 자유롭게 지을 수 있지만, 다른 사람들과 협업하거나 개인 프로젝트를 진행할 때 알아보기 쉽게 작성할 수 있는 규칙을 제공하기도 한다. 다음은 자바에서 일반적으로 많이 쓰이는 변수 명명 규칙에 대해 알아본다.

 

카멜 표기법(카멜 케이스: camelCase)

자바에서 가장 많이 쓰이는 표기법으로 카멜 표기법을 사용한다. 카멜 표기법은 낙타의 등을 닮았다고 해서 붙여진 이름으로, 단어의 첫 번째 글자는 소문자, 두 번째 단어부터 첫 글자를 대문자로 표기하는 방법이다.

int camelCase:
int studentNumber;
int classId;

 

사용 가능한 문자(영문자, 숫자, _, $)

변수 이름에는 영문자(대소문자 구분), 숫자, _, $를 사용할 수 있다. 영문자는 대소문자가 구분되어 인식하기 때문에 유의해야 한다. (a와 A는 다른 문자)

// 선언 가능한 변수
int number;
int NUMBER;
int result_1;
int result$1;
int ReSuLt_$1;

다음은 선언 규칙에 어긋난 변수 선언이다. (Error 발생)

// 선언 불가능한 변수

// 1. 숫자로 시작하는 변수명은 사용할 수 없다.
int 10_number;

// 2. 자바에서 이미 사용중인 예약어는 변수명으로 사용할 수 없다.
int class;
int char;
int byte

 

변수 이름은 사용 목적에 맞게 이름을 짓는다.

변수명은 사용 목적에 알맞게 짓는 것이 중요하다. 동작하는 데에는 문제가 없을지라도 사람이 알아보기 힘든 변수명으로 이루어진 코드는 결코 잘 작성된 코드라 할 수 없다.

// 학생번호
int studentNumber;
int stdNum;
int stdNumber;
int studentNum;

// 카운터
int counter;
int count;
int cnt ;

// 잘못된 줄임말
int sN; // studentNumber임을 추측하기 어려움
int c;  // count인지 c인지...

변수명이 너무 길어질 경우, 위와 같이 예측이 가능한 어느 정도 줄임말은 허용된다. 학습을 하다 보면, 어느 정도 유추가 가능한 줄임말들을 자주 접하게 될 것이다.

반응형