변수

단 하나의 값을 저장할 수 있는 메모리 공간을 의미합니다.

  • 변수 공간에 기록된 값은 고정되어 있지 않고, 다른 값이 기록되면 자동으로 덮어 씌워질 수 있습니다.

  • 메모리 공간은 정보처리의 기초 단위인 1Byte 로 구성되어 있습니다.

  • 메모리 공간은 각각이 구분될 수 있도록 '메모리 주소'를 가지고 있습니다.

메모리에 값을 저장하거나 읽을 때 해당 메모리 주소를 사용해야 하는데

사람이 사용하기에는 불편하기 때문에

특정 메모리 영역에 이름을 붙이고 주소 대신에 이름을 사용해서

메모리에 값을 저장하고 읽을 수 있게 한 것이 변수입니다.

  • 위 이미지 처럼 저장되는 값의 종류(타입)에 따라, 변수의 메모리 공간 크기가 결정됩니다.

변수의 선언

  • 선언을 하는 이유 : 메모리에 값을 저장할 공간을 마련하기 위해서 선언을 합니다.

  • 선언 방법 : 변수타입 변수이름;

    • int age; int num; or int 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; or int age = 23; or int 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
    }
}

Ref. Java의 정석 기초편 Chapter2(3, 4)

Ref. 변수, 타입

Last updated