2-3. 변수, 상수, 리터럴

CodingHoon·2021년 6월 1일
0

java-basic

목록 보기
6/13
post-thumbnail

✅ 변수?

▶ 변수는 항상 변하는 값을 의미한다.

▶ 변수를 사용하기 위해서는, 값에 알맞은 자료형 (DataType)을 결정해야 한다.

package variable;

public class VariableTest1 {
    public static void main(String[] args) {
        int age;  // 변수 선언
        age = 20;  // 변수 초기화

        System.out.println(age);
    }
}

[실행 결과]
20

▶ 변수의 자료형과 이름을 결정하는 것을 '변수 선언'이라고 한다.

▶ 선언된 변수에 처음으로 값을 대입하는 것을 '변수 초기화'라고 한다.


여기서 잠깐!

int는 정수를 표현하는 자료형입니다.
'2-4. 자료형' 파트에서 자세히 다룰 내용입니다 😊
👉 'java-basic: 2-4. 자료형' 문서 확인하러 가기

package variable;

public class VariableTest2 {
    public static void main(String[] args) {
        int age = 20;

        System.out.println(age);
    }
}

[실행 결과]
20

▶ 변수 선언과 변수 초기화를 동시에 할 수 있다.


✅ 프로그래밍에서 '='의 의미

▶ 수학에서는 '='는 오른쪽의 값과 왼쪽의 값이 같다는 의미를 가지지만, 프로그래밍에서는 '오른쪽의 값(R-Value)을 왼쪽의 변수(L-Value)에 대입한다'라는 의미로 사용된다.

package variable;

public class VariableTest2 {
    public static void main(String[] args) {
        int age = 20;

        System.out.println(age);
    }
}

[실행 결과]
20

▶ 결국, 위 문장은 '값 20이 age와 같다' 라는 뜻이 아니라,
'값 20을 정수 자료형으로 선언된 변수 age에 대입한다'는 뜻이다.


✅ 변수 네이밍 규칙

▶ 변수 이름은 영문자와 숫자를 사용할 수 있고, 특수문자 중에서는 '$'와 '_'만 사용할 수 있다.

▶ 단, 변수 이름은 숫자로 시작할 수 없다.

▶ JAVA에서 이미 사용 중인 예약어는 사용할 수 없다. (ex. int, while, ...)

변수 이름은 용도에 맞고 가독성 있게 선정하는 것이 좋다.

여러 단어를 사용하여 변수 이름을 만드는 경우?

  • 카멜 표기법 (Camel Case)
    첫 번째 단어를 제외한 모든 단어의 첫 글자를 대문자로 사용하는 표기법
    (Ex. numberOfStudents)

  • 스네이크 표기법 (Snake Case)
    모든 단어를 '_'로 구분하는 표기법
    (Ex. number_of_students)


✅ 상수

▶ 상수는 항상 변하지 않는 값을 의미한다.

▶ 관례적으로 대문자와 스네이크 표기법을 사용한다.

package variable;

public class ConstantTest {
    public static void main(String[] args) {
        final double PI = 3.141592;

        // PI = 3.14;  /* 오류 발생! */

        System.out.println(PI);
    }
}

[실행 결과]
3.141592

▶ 상수는 final 예약어를 사용하여 선언한다.

▶ 한 번 초기화된 상수는 추후에 값을 변경할 수 없다.


여기서 잠깐!

double은 정수를 표현하는 자료형입니다.
'2-4. 자료형' 파트에서 자세히 다룰 내용입니다 😊
👉 'java-basic: 2-4. 자료형' 문서 확인하러 가기


✅ 리터럴

▶ 리터럴은 프로그램에서 사용하는 모든 값을 의미한다. (Ex. 10, 3.141592, 'A', ...)

▶ 리터럴은 프로그램을 실행할 때 시스템에 같이 로드(load)되어,
'상수 풀 (Constant Pool)'이라는 공간에 메모리를 할당 받게 된다.

package variable;

public class VariableTest2 {
    public static void main(String[] args) {
        int age = 20;

        System.out.println(age);
    }
}

[실행 결과]
20

▶ 위 문장에서 20이라는 값은 프로그램이 실행될 때 상수 풀에 메모리를 할당 받는 '리터럴'이며, 이 리터럴이 정수형 변수 age에 대입되는 것이다.

0개의 댓글