Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java) 변수 완벽 가이드: 초보자를 위한 선언과 활용법

자바 변수 사용 방법

변수란 무엇일까요? 변수는 프로그래밍의 핵심 개념으로, 이것이 없다면 애플리케이션을 개발하는 일은 훨씬 더 어려워질 것입니다.

변수(variable)는 코드에서 사용하는 값에 이름표를 붙이는 방법입니다. 변수가 유용한 이유는 한 번 선언해 두면 프로그램 내에서 원하는 만큼 몇 번이고 재사용할 수 있기 때문입니다. 변수를 사용하면 코드에 동일한 값을 반복해서 작성할 필요가 없습니다.

이 가이드에서는 변수가 무엇인지, 어떻게 작동하는지, 그리고 자바 프로그램에서 변수를 어떻게 다루는지 알아보겠습니다. 시작해 볼까요?

자바 변수란 무엇인가?

변수는 특정 이름 또는 라벨과 연결된 값입니다. 이 이름을 통해 변수가 저장하고 있는 값을 참조할 수 있습니다.

변수를 잼 병에 붙은 라벨이라고 생각해 보세요. 라벨을 보면 병 안에 딸기잼인지, 라즈베리잼인지, 아니면 전혀 다른 맛인지 알 수 있습니다.

다음 코드를 살펴보겠습니다:

String jam = "Raspberry";

위 코드에서 우리는 "jam"이라는 자바 변수를 생성했습니다. 이제 코드 어디에서든 "jam" 변수를 참조하면 저장된 값에 접근할 수 있습니다. 즉, "Raspberry"라는 단어를 코드에 여러 번 반복해서 쓸 필요가 없다는 뜻입니다.

자바 변수는 다음과 같은 문법을 사용합니다:

type name = value;

Type은 변수에 저장되는 데이터의 자료형입니다. 한번 설정되면 변경할 수 없습니다. Name은 변수의 이름이고, Value는 해당 이름과 함께 저장되는 값입니다.

변수를 선언했으니 이제 그 값을 접근할 수 있습니다. "jam" 변수의 값을 출력해 보겠습니다:

System.out.println(jam);

코드를 실행하면 Raspberry가 출력됩니다.

변수에는 문자열뿐만 아니라 어떤 자료형의 값도 저장할 수 있습니다. 예를 들어 숫자 10을 변수에 저장하고 싶다면 다음과 같이 할 수 있습니다:

int a = 10;
System.out.println(a);

코드는 10을 반환합니다. 변수에 값을 저장하면 그 값을 조작할 수도 있습니다. 앞서 만든 변수로 간단한 수학 연산을 해 보겠습니다:

int a = 10;
int b = a - 5;
System.out.println(b);

프로그램은 5를 반환합니다. 자바가 모든 계산을 대신 처리해 줍니다. 연산 결과를 변수에 할당하면 좋은 이유는, 결과값을 여러 번 참조할 수 있기 때문입니다.

연산은 변수를 선언할 때 딱 한 번만 수행하면 되고, 그 결과는 프로그램 전체에서 계속 사용할 수 있습니다.

변수에는 다른 자료형도 사용할 수 있습니다. 예를 들어 클래스의 객체를 변수에 할당할 수도 있습니다. 부동소수점 숫자, 문자, 불리언(boolean)을 사용하는 변수의 예는 다음과 같습니다:

float price = 2.99f;
char grade = 'F';
boolean lightsOn = true;

변수는 코드에 값을 저장할 수 있게 해 주는 라벨과 같습니다.

변수 재할당

이름에서 알 수 있듯이 변수는 변할 수 있는 값을 가집니다. 자바에는 변수를 한번 선언하면 그 값을 바꿀 수 없다는 규칙이 없습니다. 따라서 변수는 프로그램 전체에서 항상 같은 값을 유지할 필요가 없습니다.

변수를 재할당하려면 변수 이름, 등호(=), 그리고 새로 할당할 값을 차례로 지정하면 됩니다:

String jam = "Raspberry";
System.out.println(jam);

jam = "Strawberry";
System.out.println(jam);

코드의 실행 결과는 다음과 같습니다:

Raspberry
Strawberry

변수를 재할당할 때는 자료형을 다시 명시할 필요가 없습니다. 자바가 해당 변수에 할당된 자료형을 자동으로 추적하기 때문입니다.

변수 재할당이 중요한 이유는, 프로그램이 실행되는 동안 값이 변할 수 있어야 하기 때문입니다.

예를 들어 숫자 맞추기 게임에서 세 번만 추측할 수 있도록 카운터 값을 변경해야 한다고 가정해 보세요. 추측을 할 때마다 카운터가 1씩 증가해야 합니다.

주의할 점은 변수에 재할당할 수 있는 값은 처음에 지정한 것과 같은 자료형이어야 한다는 것입니다. 예를 들어 앞서 선언한 "jam" 변수는 문자열로 선언되었기 때문에 배열을 할당할 수 없습니다. 잼 목록을 저장하고 싶다면 새로운 변수를 선언하고 거기에 배열을 할당해야 합니다.

자바 변수의 종류

자바의 변수에는 세 가지 종류가 있습니다: 지역 변수(local variable), 정적 변수(static variable), 인스턴스 변수(instance variable)입니다.

지역 변수는 메서드 본문 내부에서 선언됩니다. 지역 변수는 해당 메서드 내부에서만 접근할 수 있습니다. 지금까지의 예제에서 우리는 메서드 안에서 변수를 선언했기 때문에 모두 지역 변수를 사용한 것입니다.

인스턴스 변수는 클래스 내부이지만 메서드 외부에서 선언됩니다. 인스턴스 변수의 예는 다음과 같습니다:

class Main {
	String jam = "Raspberry";

	public static void main(String args[]) {
// Our code
	}
}

우리는 "jam" 변수를 Main 클래스 내부, 그리고 "main" 메서드 외부에 선언했습니다. 이것이 바로 인스턴스 변수입니다.

정적 변수는 static 키워드로 선언된 변수를 말합니다. 변수를 정적으로 만들려면 "static" 키워드를 사용해 선언해야 하며, 정적 변수는 지역 변수일 수 없습니다. 자바에서 정적 변수의 예는 다음과 같습니다:

class Main {
	static String jam = "Raspberry";

	public static void main(String args[]) {
		System.out.println(jam);
	}
}

클래스 내부에 "Raspberry" 값을 가진 "jam" 변수를 static 키워드와 함께 선언했습니다.

여러 변수 동시에 선언하기

자바에서는 한 줄의 코드로 여러 변수를 선언할 수 있습니다. 이렇게 하면 변수 선언부가 간결해지고 가독성이 향상되므로 유용합니다.

다만 이 문법을 사용할 때는 한 줄에 몇 개의 변수만 선언하는 것이 좋습니다. 한꺼번에 너무 많은 변수를 선언하면 코드가 복잡해질 수 있기 때문입니다. 또한 동시에 여러 변수를 선언할 수 있는 경우는 자료형이 모두 같을 때뿐입니다.

한 줄에 여러 변수를 선언하려면 먼저 해당 변수들의 자료형을 지정한 후, 선언하려는 변수들을 나열하면 됩니다.

다음 예제를 살펴보겠습니다:

int a = 1, b = 2, c = 3;
System.out.println(a + b - c);

코드의 실행 결과는 0입니다. 우리는 a, b, c 세 개의 변수를 선언했습니다. 각 변수는 고유한 값을 가지며, a는 1, b는 2, c는 3입니다.

자바 변수 명명 규칙

변수 이름 짓는 방식은 개발자마다 다르며, 프로그래밍을 배우면서 자연스럽게 익히게 됩니다. 그럼에도 불구하고 변수 이름을 정할 때 고려해야 할 몇 가지 규칙이 있습니다.

변수 이름은 흔히 식별자(identifier)라고도 불립니다.

자바에서 변수 이름에는 공백을 포함할 수 없습니다. 영문자, 숫자, 밑줄(_), 달러 기호($)는 사용할 수 있지만, 반드시 영문자로 시작해야 합니다.

유효한 변수 이름의 예는 다음과 같습니다:

  • raspberry
  • peanutButter
  • book

다음 변수 이름들은 유효하지 않습니다:

  • 1raspberry: 숫자로 시작하면 안 됩니다.
  • _peanutButter: 특수 기호로 시작합니다.
  • book.: 밑줄이나 달러 기호가 아닌 특수 문자로 끝납니다.

변수 이름을 지을 때는 그 변수의 용도가 명확하게 드러나도록 해야 합니다. 사용자에게 나이를 입력받는 프로그램이라면 그 값을 "age"라는 변수에 저장하는 것이 자연스럽습니다. "a"나 "number" 같은 이름에 저장하는 것은 직관적이지 않습니다.

대부분의 자바 개발자는 변수 이름을 지을 때 카멜 케이스(camel case)를 선호합니다. 카멜 케이스란 첫 번째 단어는 소문자로 시작하고, 이후의 각 단어는 대문자로 시작하는 표기법입니다. 다음 변수를 살펴보겠습니다:

boolean javaIsCool = true;

이 "javaIsCool" 변수는 세 단어로 구성되어 있으므로 카멜 케이스를 사용합니다. "Is"와 "Cool"이 모두 대문자로 표기되어 있습니다.

자바 변수 이름은 대소문자를 구분합니다. 즉, "javaIsCool"과 "javaiscool"은 서로 다른 두 개의 변수입니다. 기본 문자는 같아도 대소문자가 다르기 때문입니다.

final 변수 선언하기

앞서 변수는 재할당할 수 있다고 언급했습니다. 이는 변수가 final 키워드로 선언되지 않은 경우에만 해당됩니다. final 키워드를 사용하면 변수의 값이 최종 확정되어 프로그램에서 읽기만 가능합니다.

final 변수를 선언하려면 변수 선언문 앞에 final 키워드를 붙여야 합니다:

final boolean javaIsCool = true;

이 변수를 재할당하려고 하면 오류가 발생합니다:

final boolean javaIsCool = true;
javaIsCool = false;

이 코드는 실패하며 다음과 같은 오류를 반환합니다:

error: cannot assign a value to final variable javaIsCool

마무리

변수를 사용하면 코드에서 값에 라벨(이름)을 붙여 저장할 수 있습니다. 변수를 한번 선언하면 프로그램 전체에서 참조할 수 있으므로, 여러 번 사용할 값을 반복해서 작성할 필요가 없습니다.

또한 final 키워드로 선언된 변수가 아니라면 언제든 값을 재할당할 수 있습니다.

이제 여러분도 프로처럼 자바 코드에서 변수를 활용할 준비가 되었습니다!