JAVA 강의록 1.3 : 변수

우현민·2021년 1월 21일
0

변수의 의미

변수: 값이 변할 수 있는 수 를 뜻한다.
우리가 사용하는 값: 3, "hello", 'c' 등은 고정된 값이지만, 때에 따라 고정된 값을 자유롭게 담을 수 있는 그릇이 필요하다.

변수 선언은 다음과 같이 한다.


// [변수 타입] [변수 이름];
String a;

값 할당은 다음과 같이 한다.


// [변수 타입] [변수 이름];
a = "Hello World!";

그럼 다음 코드를 실행해 보자.


String a;
a = "Hello World!";
System.out.println(a);
System.out.println();

a = "World is hello!";
System.out.println(a);

변수를 사용하는 이유

아직 입력을 배우진 않았으나, 무언가 값을 입력받아서 저장해 두고 나중에 쓰려면 변수가 필수적이다.

또한 변수가 있으면, 값이 가지는 의미를 조금 더 명확하게 표현할 수 있다.

또한 변수를 이용하면, 나중에 값이 바뀔 때 코드를 효율적으로 수정할 수 있다.

다음 코드를 읽어 보자.


System.out.println("Hello World!");
System.out.println("Bye World!");
System.out.println("Hello World!");
System.out.println("Bye World!");
System.out.println("Hello World!");
System.out.println("Bye World!");

여기서 Hello World!라는 문장 대신 World Hello!라는 문장을 사용하고 싶다고 하자. 그러면 우리는 코드 세 줄을 수정해야 할 것이다.

이제 다음 코드를 확인해 보자.


String a = "Hello World!";
String b = "Bye World!";

System.out.println(a);
System.out.println(b);
System.out.println(a);
System.out.println(b);
System.out.println(a);
System.out.println(b);

이젠 어떤가? 똑같은 변화를 주고 싶다면, 한 줄만 바꿔도 된다.
한 단계 더 나아가 다음 코드를 보자.


String helloString = "Hello World!";
String byeString = "Bye World!";

System.out.println(helloString);
System.out.println(byeString);
System.out.println(helloString);
System.out.println(byeString);
System.out.println(helloString);
System.out.println(byeString);

이제 우리는 변수가 가지고 있는 값이 어떤 값인지 변수 이름을 통해 유추할 수 있다.

8가지 non-primitive type

컴퓨터는 0과 1밖에 모른다. 때문에 컴퓨터가 값을 저장하려면 0과 1로만 어떻게든 저장해야 한다. 너무 자세히 다루지는 않겠다.

정수의 경우에는 이진법을 사용하면 간단하게 표현할 수 있을 듯 하다.
실수의 경우에는 IEEE 754라는 기법이 있다.
문자의 경우에는 각 문자마다 대응되는 ASCII Code가 있다.
논리의 경우에는 참 / 거짓밖에 없기 때문에, 1개의 byte만 차지한다.

타입자료형차지하는 공간나타내는 값의 범위
정수byte1 byte-128 ~ 127
short2 byte-32,768 ~ 32,767
int4 byte-2,147,483,648 ~ 2,147,483,647
long8 byte–9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
실수float4 byte제한 없음(엄밀하게는 있음)
double8 byte제한 없음(엄밀하게는 있음)
문자char1 byte0 ~ 255
논리boolean1 bytetrue, false

non-primitive type의 반대로는 primitive type이 있다. 이 8개의 타입을 제외하고, 모든 변수는 primitive type이다.

간단히 설명하자면, non-primitive type 변수는 변수 자체가 값을 가지고 있지만, primitive type는 값은 어디다가 갖다 놓고, 그 갖다 놓은 주소를 가지고 있다. 때문에 reference type이라고도 한다.

String

final 변수

변수 명명 규칙

필수 규칙

  1. 변수 이름에는 알파벳, 숫자, _, $만 쓸 수 있다.
  2. 변수 이름의 첫 글자로 숫자가 올 수는 없다.

권장되는 규칙

  1. 변수 이름은 의미 있게 적는다.
  2. final 변수(상수 변수)가 아니라면,
    1. 단어 하나로 이루어진 이름이면, 모두 소문자로 적는다.
    2. 단어 여러 개가 붙어서 이루어지는 이름이라면, 뒤에 붙는 이름들은 대문자로 시작한다.
    3. 가능하다면, 변수명은 너무 길게 사용하지 않는다.
  3. final 변수(상수 변수)라면,
    1. 모든 알파벳은 대문자로 적는다.
    2. 단어 여러개가 이어붙었다면 _로 잇는다.
    3. 변수명은 정확하게 적는다.
int a = 1, b = 2;       // 권장되지 않음
int num1 = 1, num2 = 2; // 권장됨

int Num = 30; // 권장되지 않음
int num = 30; // 권장됨

int NumbERofsTudentsinmyclass = 30; // 권장되지 않음
int numberOfStudentsInMyClass = 30; // 저거보단 권장됨

int numberOfStudentsInMyClass = 30; // 권장되지 않음
int nStd = 30;                      // 권장됨

final double piValue = 3.141592;    // 권장되지 않음
final double PI = 3.141592;         // 권장됨
profile
프론트엔드 개발자입니다

0개의 댓글