변수
- 값을 저장할 수 있는 메모리의 공간
- 변수에는 한 가지 타입의 값만 저장할 수 있음
변수 선언
- 어떤 타입의 데이터를 저장할 것인지, 이름은 무엇인지를 결정
- 같은 타입의 변수는 콤마(,)를 이용해서 한꺼번에 선언할 수도 있음
- 변수 이름은 메모리 주소에 붙여진 이름
- 프로그램은 변수 이름을 통해서 메모리 주소에 접근하고, 그곳에 값을 저장하거나 그곳에 있는 값을 읽음
int age; //정수(int)값을 저장할 수 있는 age 변수 선언
int = 타입
age = 변수이름
변수 이름은 자바 언어에서 정한 명명 규칙을 따라야 함
- 첫 번째 글자는 문자이거나 '$', '_', 숫자 시작 ㄴㄴ
- 영어 대소문자 구분(필수)
- 첫 문자는 영어 소문자로 시작하되, 다른 단어 붙을 경우 첫 문자를 대문자로 함(관례)
- 문자 수(길이) 제한 없음
- 자바 예약어는 사용할 수 없음(필수) (기본 데이터 타입, 접근 지정자, 클래스와 관련된 것 등) - p.31 참고
변수값 저장
- 변수에 값 저장할 때 대입 연산자(=) 사용 // 우측의 값을 좌측 변수에 저장한다는 의미
- 변수를 선언하고 처음 값을 저장할 경우, 이러한 값을 초기값이라고 함
- 변수에 초기값을 주는 행위를 변수의 초기화라고 함
int score; //변수 선언
score = 90; //값 저장
int score = 90; //초기값은 변수를 선언함과 동시에 줄 수도 있음
- 소스 코드 내에서 직접 입력된 값을 리터럴(literal)이라고 부름 - p.33 참고
\t // 수평 탭
\n // 줄 바꿈
\r // 리턴
\" // 큰 따옴표
\' // 작은 따옴표
\\ // \
\u // 16진수에 해당하는 유니콛,
변수값 읽기
- 변수는 초기화가 되어야 읽을 수 있음
package thisisjava.chap02.num01;
public class VariableExample {
public static void main(String[] args) {
int value = 10; //10을 변수 value의 초기값으로 저장
//변수 value 값 읽고, 10을 더하는 산순 연산, 연산의 결과값 result 초기값으로 저장
int result = value + 10;
System.out.println(result); //변수 result 값을 읽고 콘솔에 출력
}
}
변수의 사용 범위
- 변수는 중괄호 {} 블록 내에서 선언되고 사용
- 중괄호 블록 사용하는 곳은 클래스, 생성자, 메소드
- 메소드 블록 내에 선언된 변수 = 로컬 변수(locael variable)
로컬 변수는 메소드 실행이 끝나면 메모리에서 자동으로 없어짐
public class Sample { //클래스 블록
public static void main(String[] args) { //메소드블록
int value = 10;
int sum = value + 20;
System.out.println(sum);
}
}
> 변수는 선언된 블록 내에서만 사용이 가능
package thisisjava.chap02.num01;
public class VariableScopeExample {
public static void main(String[] args) {
int v1 = 15;
if (v1 > 10) {
int v2 = v2 - 10;
}
int v3 = v1 + v2 + 5; // 컴파일 에러
}
}
> 제어문 블록에서 선언된 변수는 해당 제어문 블록 내에서만 사용이 가능하고 블록 밖에서는 사용할 수 없음
'이것이 자바다' 공부 기록
300x250
'Language > JAVA' 카테고리의 다른 글
[JAVA] 연산자와 연산식 2 // 이항연산자 삼항연산자 (0) | 2021.09.13 |
---|---|
[JAVA] 연산자와 연산식 1 // 단항연산자 이항연산자 (0) | 2021.09.12 |
[JAVA] 데이터 타입 변환 // 자동타입변환 강제타입변환 연산식타입변환 (0) | 2021.09.11 |
[JAVA] 데이터 타입 // 정수 실수 문자 논리 (0) | 2021.09.10 |
[JAVA] 자바! 프로그래밍 언어 / 주석 / 실행문 / 세미콜론 (0) | 2021.09.08 |