변수
단 하나의 값을 저장할 수 있는 메모리 공간을 의미합니다.
변수 공간에 기록된 값은 고정되어 있지 않고, 다른 값이 기록되면 자동으로 덮어 씌워질 수 있습니다.

메모리 공간은 정보처리의 기초 단위인 1Byte 로 구성되어 있습니다.
메모리 공간은 각각이 구분될 수 있도록 '메모리 주소'를 가지고 있습니다.
메모리에 값을 저장하거나 읽을 때 해당 메모리 주소를 사용해야 하는데
사람이 사용하기에는 불편하기 때문에
특정 메모리 영역에 이름을 붙이고 주소 대신에 이름을 사용해서
메모리에 값을 저장하고 읽을 수 있게 한 것이 변수입니다.

위 이미지 처럼 저장되는 값의 종류(타입)에 따라, 변수의 메모리 공간 크기가 결정됩니다.
변수의 선언
선언을 하는 이유 : 메모리에 값을 저장할 공간을 마련하기 위해서 선언을 합니다.
선언 방법 :
변수타입 변수이름;
int age; int num;
orint age, num;
class Variable1_1 {
boolean flag;
char grade;
byte val;
short sval;
int num;
long price;
float tax;
double score;
}
변수 생성 규칙
대소문자가 구분되며 길이에 제한이 없음
예약어(ex->true) 사용 불가
숫자로 시작 불가
특수문자 _ 와 $ 만 허용
변수의 여러가지 형태
Camel case
varTest
Snake case
var_test
Pascal case (Java 에는 클래스명만 대문자로 시작하자는 암묵적인 규칙이 있어서 추천 X)
VarTest
Kebab case (Java 에서는 변수명에 - 기호 사용 불가)
var-test
변수의 초기화
변수에 값을 저장하는 방법 :
변수타입 변수이름 = 값;
int age; age = 23;
orint age = 23;
orint age = 23, num = 32768;
초기화 : 변수에 처음으로 값을 저장하는 것을 의미합니다.
class Variable1_2 {
public static void main(String[] args) {
boolean flag = false;
char grade = 'A';
byte val = 127;
short sval = 128;
int num = 32768;
long price = 2_147_483_648L;
float tax = 3.14f;
double score = 3.14159265358979;
System.out.println("boolean = " + flag);
System.out.println("char = " + grade);
System.out.println("byte = " + val);
System.out.println("short = " + sval);
System.out.println("int = " + num);
System.out.println("long = " + price);
System.out.println("float = " + tax);
System.out.println("double = " + score);
}
}
변수의 값 읽기
class Variable1_3 {
public static void main(String[] args) {
int year, age = 23;
year = age + 2000;
System.out.println("year = " + year); // 2023
// 변수의 값을 읽어오는 과정
// year = age + 2000;
// year = 23 + 2000;
// year = 2023;
age = age + 1;
System.out.println("age = " + age); // 24
System.out.println("year = " + year); // 2023
// 변수의 값을 읽어오는 과정
// age = age + 1;
// age = 23 + 1;
// age = 24;
// 프로그램은 순차적으로 코드가 실행되기 때문에
// 여기서 age의 값이 바뀌었다고 year에 영향을 주지 않는다.
}
}
변수의 종류
변수의 종류에는 클래스, 인스턴스, 지역 변수가 있습니다.
뒤에서 다시 학습하기 때문에 간단하게 아래 예제코드로 정리하겠습니다.
class Variable1_4 {
static int classVal = 100; // 클래스 변수
int instanceVal = 200; // 인스턴스 변수
public static void main(String[] args) {
int num; // 지역 변수
// System.out.println("int = " + num); // Error 발생
num = 300;
System.out.println("int = " + num); // 100
// 인스턴스 변수
// System.out.println("instanceVal = " + instanceVal); // Error 발생
Variable1_4 instance = new Variable1_4 (); // 인스턴스 변수 사용을 위해 객체 생성
System.out.println("instanceVal = " + instance.instanceVal); // 100
// 클래스 변수
System.out.println("classVal = " + classVal);
// 같은 크래스 내부는 바로 접근 가능
System.out.println("Main.classVal = " + Variable1_4.classVal);
// 클래스 변수 : 클래스명.클래스변수명 으로 접근 or
}
}
Last updated