변수는 값을 저장하는 메모리이다.
<변수 선언>
값을 저장하는 메모리를 준비하는 명령이다.
값을 저장할 메모리의 종류와 크기를 결정하고 그 메모리에 이름을 부여한다.
변수를 선언한 후 바로 그 이름을 사용하여 메모리에 접근하고 값을 넣고 꺼낸다.
보통 "변수를 생성한다"라고 표현하기도 한다.
[변수 선언 문법]
데이터타입 변수
예) int i;
또는 한 문장으로 같은 유형의 변수를 여러 개 선언할 수 있다.
[여러개 변수 선언 문법]
데이터타입 변수1, 변수2, 변수3;
예 ) int j1, j2, j3;
(콤마(,)를 사용하여 여러 개의 변수를 한 번에 선언할 수 있다.)
<변수에 값 할당(변수가 가리키는 메모리에 값을 저장하는 것)>
[변수 값 할당 문법]
변수명 = 변수 또는 리터럴;
int age;
//- 문법
// 변수명 = 값;
age = 20;
// 표현 : age에 20을 저장하라!
용어
= : 할당 연산자(assignment operator)
l-value : = 왼쪽에 있는 변수를 가리킨다. l-value는 리터럴이 될 수 없다.
r-value : = 오른쪽에 있는 변수나 리터럴을 가리킨다.
의미
= 오른쪽에 지정된 값을 왼쪽 변수가 가리키는 메모리에 저장.
<변수 선언과 값 할당을 동시에 하기>
변수과 동시에 값을 즉시 저장할 수 있다.
[변수 선언과 값 할당 문법]
데이터타입 변수명 = 값;
//변수 선언 + 값 저장
//- 이렇게 변수 선언과 값 저장을 한 번에 하는 것을 '변수 초기화 문장'이라 부른다.
int age = 20;
추가
1. 여러 개의 변수를 선언할 때도 한 개를 선언할 때와 마찬가지로 값을 저장할 수 있다.
2. 모든 변수를 다 초기화시킬 필요는 없다.
<변수의 값 변경>
int age;
age = 20;
//할당 연산자를 이용하면 언제든 해당 메모리에 다른 값을 저장할 수 있다.
age = 30;
<블록 안에서 변수 선언 위치>
//사용할 변수를 블록({}) 시작 부분에 미리 선언해 놓아도 된다.
int age;
int weight;
int height;
age = 20;
weight = 100;
height = 200;
//변수가 필요할 때 블록({}) 중간 부분에 언제든 선언할 수 있다.
int score;
score = 100;
<변수 선언 오류>
주의 : 같은 블록 안에서 같은 이름의 변수를 중복해서 선언할 수 없다.
//변수 선언 보다 변수 사용이 먼저 올 수 없다.
count = 50; // 문법 오류!
int count;
//항상 변수가 선언된 다음에 사용해야 한다.
count = 50; // 옳다!
<변수 사용>
다른 도구(메서드; 함수라고도 부른다)에 값을 전달 할 수 있다.
다른 변수에 값을 저장할 때 사용할 수 있다.
주의 : 값이 저장되지 않은 변수를 사용하면 문법 오류이다.
int age = 20;
//println() 메서드(도구)
//- 콘솔(console)로 값을 출력할 때 사용하는 도구이다.
//- 즉 JVM의 표준 출력 장치로 값을 출력한다.
//- 사용법
// System.out.println(리터럴 또는 변수, 결과가 생성되는 명령문)
//
System.out.println(age);
int age1 = 20;
//r-value 자리에 변수를 놓을 수 있다.
int age2 = age1;
//의미
//- age1에 저장된 값을 age2에 복사하라!
//age1과 age2는 같은 메모리가 아니다.
//증명
//- age1의 값을 변경한다.
age1 = 30;
System.out.println(age1);
System.out.println(age2);
<변수의 종류>
자바 원시 타입의 값을 저장하는 변수와 메모리 주소를 저장하는 변수가 있다.
1) 자바 원시 타입 변수(primitive variable)
정수, 부동소수점, 논리, 문자코드의 값을
2) 레퍼런스 변수(referece variable)
자바 원시 타입의 값을 제외한 모든 값
'Java' 카테고리의 다른 글
배열, 배열레퍼런스, 배열인스턴스 (0) | 2021.10.28 |
---|---|
변수의 종류 (0) | 2021.09.29 |
예외처리 (0) | 2021.09.19 |
오버로딩 (0) | 2021.09.16 |
생성자는 언제 쓰나? (0) | 2021.09.14 |