JAVA/JAVA
Java | Variable 변수, Scope, Constant 상수
pathas
2020. 1. 15. 22:22
Variable 변수
Variable Declaration 변수 선언
메모리(RAM)에 문자, 숫자, 논리적인 값을 저장할 수 있는 공간을 생성하는 것
- 메모리의 일정 공간을 특정해서 거기에 데이터를 저장
정확한 위치는 알 수 없음 - 데이터를 저장하거나 불러올 때 사용
변수가 주소값으로 사용됨 - 컴퓨터는 데이터의 위치를 숫자로 지정하지만
사람이 그렇게 하기는 어렵기 때문에 변수의 이름을 지정해서 사용 - 변수명은 중복을 허용하지 않음
형식 1
변수를 먼저 선언한 뒤에 변수 값을 초기화
public class VarTest {
public static void main(String[] args) {
//자료형 변수명;
int age;
age = 23;
System.out.println("올해 제 나이는 : "+age+"입니다.");
// 올해 제 나이는 : 23입니다.
}
}
※ 메모리 내부에 age변수가 저장될 수 있는 공간이 생성됨
형식 2
변수를 선언하는 동시에 변수 값을 초기화
public class VarTest {
public static void main(String[] args) {
//자료형 변수명;
int age = 23;
System.out.println("올해 제 나이는 : "+age+"입니다.");
// 올해 제 나이는 : 23입니다.
}
}
형식3
자료형이 같은 경우 한 번에 여러 개의 변수 선언 가능
public class VarTest4 {
public static void main(String[] args) {
int num1, num2, num3;
// 여러 변수 선언과 동시에 변수 값 초기화 가능
int num4 = 1, num5 = 2, num6 = 3;
System.out.println(num4+num5+num6); // 6
}
}
변수 특성
- 변수는 값을 출력하기 전에 초기화되어 있어야 함
초기화하지 않고 출력시 에러 발생 - 변수는 중간에 값이 바뀔 수 있음
가장 마지막 값이 최종적으로 저장됨
public class VarTest4 {
public static void main(String[] args) {
int num;
System.out.println(num);
/* 에러 발생, 소스코드를 실행하기 위해서는
주석처리 하거나, 삭제하거나, num을 초기화해야함 */
num = 23;
System.out.println(num);
// 23
}
}
변수 종류
- 멤버 변수(Member Variable) : 클래스 내부에, 메서드 외부에 선언된 변수
- 지역 변수(Local Variable) : 메서드 내부에 선언된 변수
선언된 메서드 외부에서는 접근할 수 없는 변수
{블럭단위}로 지정하며, 해당 블럭 밖에서는 사용할 수 없음
public class VarTest5Scope {
int su3;
// 멤버 변수 Member Variable : 클래스 내부에 선언된 변수
public static void main(String[] args) {
int su1 = 10;
// 지역 변수 Local Variable : 메서드 내부에 선언된 변수
}
}
Scope 변수 범위
Scope : 변수가 사용될 수 있는 범위를 나타냄
public class VarTest5Scope {
public static void main(String[] args) {
int su1 = 10;
{// 블럭Block 지정
int su2 = 20;
System.out.println("su1값: "+su1);
System.out.println("su2값: "+su2);
/* su1값: 10
→ su1은 이 블럭을 포함하는 메서드에 선언되었기 때문에 정상 출력됨
su2값: 20 */
}
System.out.println("su2값: "+su2);
//su2가 선언된 블럭 밖에서 su2를 호출하고 있기 때문에 에러 발생
}
}
※ su1 변수 scope : main 메서드 전체
su2 변수 scope : main 메서드 내부에 su2가 선언된 블럭
Constant 상수
값이 정해지면 중간에 바뀌지 않는 수
FINAL
변수 앞에 작성하는 예약어이며 해당 변수를 상수로 변환
관례적으로 상수는 이름을 대문자로 작성
public class VarTest4 {
public static void main(String[] args) {
final int NUM7 = 40;
NUM7 = 22; // NUM7은 값이 변할 수 없기 때문에 에러 발생
}
}
소스코드 작성시 데이터를 저장하는 변수와 상수에 대해 알아보았습니다.
변수와 상수는 어디에 선언되었느냐에 따라서 접근 가능 범위가 달라지기 때문에
Scope에 대해 알고 있으면 어디에 선언한 변수를 어떻게 사용해야 하는지에 대해 알 수 있습니다.