1. 변수(variable)
1.1 변수(variable)란?
- 수학에서 변수란 변하는 수라고 정의하지만 프로그래밍에서는 저장할 수 있는 메모리상의 공간을 의미
- 이 공간에 저장된 값은 변경될 수 있기 때문에 변수라는 수학용어의 정의와 상통하는 면이 있음
- 단 하나의 값을 저장할 수 있는 메모리 공간
- 단 하나의 값만 저장할 수 있으므로, 새로운 값을 저장하면 기존의 값은 사라진다.
1.2 변수 선언과 초기화
int age; // age 라는 이름의 변수를 선언
// 여기서 int는 변수 타입, age는 변수 이름
- 변수타입 : 변수에 저장될 값이 어떤 '타입(type)'인지를 지정하는 것.
- 자바는 정수형, 실수형, 문자형 등 다양한 타입을 제공한다.
- 변수이름 : 변수에 붙인 이름이다.변수는 '값을 저장할 수 있는 메모리 공간' 이므로 변수의 이름은 메모리 공간에 이름을 붙여주는 것이다. 그래야 그 이름을 이용해서 저장공간(변수)에 값을 저장하고, 저장된 값을 읽어오기도 할 수 있는 것이다.
- 같은 이름의 변수가 여러 개 존재해서는 안된다. 서로 구별될 수 있어야 하기 때문이다.
- 변수를 선언하면, 메모리의 빈 공간에 '변수타입'에 알맞은 크기의 저장공간이 확보되고,
- 앞으로 이 저장 공간은 '변수이름'을 통해 사용할 수 있게 된다.
- 위의 문장은 변수 'age'를 선언한다.
- 이 변수는 '나이'는 나이를 저장하기 위한 것이고, '정수(integer)'이므로 변수의 타입을 'int'로 지정하였다.
변수의 초기화
- 변수를 선언한 이후부터는 변수를 사용할 수 있으나, 그 전에 반드시 변수를 '초기화(initialization)'해야 한다.
- 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 '알 수 없는 값(쓰레기값, garbage value)'이 남아 있을 수 있기 때문
- 변수에 값을 저장할 때는 대입 연산자 '='를 이용한다.
- 수학에서는 양변의 값이 같다는 뜻이지만, 자바에서는 오른쪽의 값을 왼쪽(변수)에 저장하라는 뜻이다.
- 그래서 대입연산자의 왼쪽에는 반드시 변수가 와야 한다.
ing age = 25; // 변수 age를 선언하고 25로 초기화 한다.
- 양쪽의 코드는 서로 같은 의미의 다른 코드
- 변수는 한줄에 하나씩 선언하는 것이 보통이지만, 타입이 같은 경우 콤마','를 구분자로 여러 변수를 한 줄에 선언하기도 한다.
int a; int a, b;
int b; int x = 0, y = 0;
int x = 0;
int y = 0;
- 변수의 종류에 따라 변수의 초기화를 생략할 수 있는 경우도 있지만, 변수는 사용되기 전에 적절한 값으로 초기화 하는 것이 좋다.
- 변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것
두 변수의 값 교환하기
int x = 10;
int y = 20;
- 단순하게 변수 x의 값을 y에 저장하고, y의 값을 x에 저장하면 될 것 같지만 그렇게 해서는 원하는 결과를 얻을 수 없다.
- 변수 y에 저장된 값을 변수 x에 저장
x = y;
- 변수 x에 저장된 값을 변수 y에 저장
y = x;
- 첫 번째 단계에서 y의 값을 x에 저장할 때, 이미 x의 값이 없어졌기 때문에 x의 값을 y에 저장해도 소용이 없는 것이다.
- 그러면 어떻게 해야될까?
- 다음과 같ㄴ이 변수를 하나 더 선언해서 x의 값을 위한 임시 저장소로 사용하면 된다.
int x = 10;
int y = 20;
int tmp; // x값을 임시로 저장할 변수를 선언
- 변수 x에 저장된 값을 변수 tmp에 저장
- 변수 y에 저장된 값을 변수 x에 저장
- 변수 tmp에 저장된 값을 변수 y에 저장
- 두 변수의 값을 교환하는 것은 마치 두 컵에 담긴 내용물을 바꾸려면 컵이 하나 더 필요한 것과 같다.
1.3 변수의 명명규칙
- '변수의 이름'처럼 프로그래밍에서 사용하는 모든 이름을 '식별자(identifier)'라고 한다.
- 식별자는 같은 영역 내에서 서로 구분(식별)될 수 있어야 한다.
- 식별자를 만들 때는 다음과 같은 규칙을 지켜야 한다.
- 대소문자가 구분되며 길이에 제한이 없다.
- True와 true는 서로 다른 것으로 간주된다.
- 예약어를 사용해서는 안된다.
- true는 예약어라서 사용할 수 없지만, True는 가능하다.
- 숫자로 시작해서는 안 된다.
- top10은 허용하지만 7up은 허용되지 않는다.
- 특수문자는 '_'와 '$'만을 허용한다.
- $harp은 허용되지만, S$arp은 허용되지 않는다.
- 대소문자가 구분되며 길이에 제한이 없다.
- 예약어는 키워드(keyword) 또는 '리져브드 워드(reserved word)'라고 하는데, 프로그래밍의 구문에 사용되는 단어를 뜻한다.
- 예약어는 클래스나 변수, 메서드의 이름(identifier)으로 사용할 수 없다.
- 아래의 표는 자바에서 사용되는 예약어이다.
| abstract | default | if | package | this | assert |
| do | goto | private | throw | boolean | double |
| implements | protected | throws | break | else | import |
| public | transient | byte | enum | instanceof | return |
| true | case | extends | int | short | try |
| catch | false | interface | static | void | char |
| final | long | strictfp | volatile | class | finally |
| native | super | while | const | float | new |
| switch | continue | for | null | synchronized |
- 그 외에 필수적인 것은 아니지만 자바 프로그래머들에게 권장하는 규칙들은 다음과 같다.
- 클래스 이름의 첫 글자는 항상 대문자로 한다.
- 변수와 메서드의 이름의 첫 글자는 항상 소문자로 한다.
- 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.
- lastIndexOf, StringBuffer
- 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_'로 구분한다.
- PI, MAX_NUMBER
- 이 규칙을 따르지 않는다고 해서 문제가 되는 것은 아니지만 가능하면 지키도록 노력하자.
- 변수의 이름은 짧을수록 좋지만, 약간 길더라도 용도를 알기 쉽게 '의미 있는 이름'으로 하는 것이 바람직하다.
- 변수의 선언문에 주석으로 변수에 대한 정보를 주는 것도 좋은 생각이다.
- 클래스 이름의 첫 글자는 항상 대문자로 한다.
'Back-end > JAVA' 카테고리의 다른 글
| 2.4 화면에서 입력받기 - Scanner (0) | 2026.01.27 |
|---|---|
| 2.3 형식화된 출력 - printf() (0) | 2026.01.16 |
| 2.2 상수와 리터럴(constant & literal) (0) | 2026.01.12 |
| 2. 변수의 타입 - 2.1 기본형(primitive type) (0) | 2026.01.11 |
| 1. 자바(Java Programming Language) (0) | 2026.01.09 |