-
Java | Variable 변수, Scope, Constant 상수JAVA/JAVA 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에 대해 알고 있으면 어디에 선언한 변수를 어떻게 사용해야 하는지에 대해 알 수 있습니다.
'JAVA > JAVA' 카테고리의 다른 글
Java | Operator 연산자 (0) 2020.01.16 Java | Data Type 자료형 (0) 2020.01.15 Java | 기본 문법 (0) 2020.01.15 Java | 이클립스 Package 관리 (0) 2020.01.15 Java | Eclipse 개요 & 단축키 정리 (0) 2020.01.15 - 메모리의 일정 공간을 특정해서 거기에 데이터를 저장