JAVA/기초

2.1.1 변수(variable)

edoyyoy 2023. 2. 23. 17:42

1. 변수(variable)란?

   값(data)을 저장할 수 있는 메모리 공간

   하나의 변수에는 단 하나의 값만 저장할 수 있으므로, 새로운 값을 저장하는 경우 기존의 값은 사라진다.

 

 

2. 변수의 선언

    변수를 선언하기 위해서는 변수 타입과 이름을 지정해준다.

    변수를 선언하면, 메모리의 빈 공간에 '변수 타입'에 알맞는 크기의 저장 공간이 확보되고,

                              '변수 이름'을 통해 저장 공간을 사용할 수 있다.

 

    변수 타입 : 변수에 저장될 값이 어떤 타입(type)인지 저장

    변수 이름 : 변수에 붙인 이름

                      변수 이름을 선언할 때에는 같은 이름의 변수를 여러 개로 설정할 수 없다. (서로 구별되어야 하기 때문이다.)

int age;

     * 예시에서는 정수형인 int 타입을 지정했으며, 이름은 age로 설정했다.

        (자바의 경우 한 줄의 코드가 끝나면 세미콜론(;)으로 문장을 마무리 해주어야 한다.)

 

 

3. 변수의 초기화

    변수를 사용하기 위해서는 변수를 초기화(initialzation)해야 한다.

    왜나하면 메모리는 여러 프로그램이 공유하는 자원이므로 알 수 없는 값(쓰레기 값)이 남아있을 수 있기 때문이다.

    따라서 변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것이다.

   

    변수를 초기화 할때는 대입 연산자 '='를 사용하며, 오른쪽의 값을 왼쪽의 변수에 저장한다.

int a;
int b;

int a, b;


int x = 0;
int y = 0;

int x = 0, int y = 0;

   * 변수는 한 줄에 하나씩 선언하는 것이 보통이나, 타입이 같은 경우는 콤마','를 이용해 여러 변수를 한 줄에 선언할 수 있다.

   * 변수의 종류에 따라 초기화를 생략할 수 있지만, 사용되기 전에 적절한 값으로 초기화 하는 것이 좋다.

 

   * 변수의 초기화 예제 2-1

       * psvm + tab 으로 public static void main(String[] args) 자동완성

       * soutv + tab 으로 System.out.println("year = " + year); 자동완성

          화살표 키로 변수 변경이 가능하다.

 

       * year과 age를 선언하면서 각각 0과 14로 초기화 했다. 

         이후 year는 변수 age 값에 2000을 더해준 값으로 저장하고, age는 기존의 age 값에 1을 더해서 저장한다.

 

       * 앞의 포스트에서와 같이 패키지를 책의 순서와 동일하게 생성해 준 후, 예제의 이름과 동일한 클래스를 생성하여 코드를 작성했다.

 

 

4. 두 변수의 값 교환하기

     두 변수의 값을 서로 바꾸기 위해서는 새로운 변수를 선언해서 임시 저장소로 사용해야 한다.

   

   * 두 변수의 값 교환하기 예제 2-2

       * x 값을 y에 넣기 위해서는 임시 변수에 값을 저장한 후 y 값을 x 값에 넣어주어야 한다.
          y 값에 x 값을 넣는 순간 기존의 값은 사라지기 때문이다.
 
       * 똑같은 코드를 복사하기 위해서는 기존의 복사를 사용해도 되지만 command + D를 누르면 바로 다음 줄에 같은 코드가 반복된다.     
System.out.println("x = "  x + " y =" + y);  // 이 줄에서 command + D를 누르면
System.out.println("x = "  x + " y =" + y);  // 바로 밑에 똑같은 코드가 생성된다.​

 

       * 해당 줄의 코드를 이동하고 싶으면 shift + option + 화살표 키 (위/아래) 로 원하는 자리에 코드를 이동시킬 수 있다.

       * 한 줄의 코드를 한 번에 없애고 싶으면 command + X를 눌러준다.

 

 

5. 변수의 명명규칙

    변수의 이름처럼 프로그래밍에서 사용하는 모든 이름을 식별자(identifier)라고 하며,

    식별자는 같은 영역 내에서 서로 구분(식별)될 수 있어야 한다.

 

    * 식별자 생성 규칙

    1. 대소문자가 구분되며 길이에 제한이 없다.   (True와 true는 서로 다르다.)

    2. 예약어는 사용해서 안된다.   (true는 예약어이기 때문에 사용할 수 없지만, True는 예약어가 아니므로 사용할 수 있다.)

        * 예약어란? 

          키워드(keyword), 리저브드 워드(reserved word)라고 하며 프로그래밍 언어의 구문에 사용되는 단어이다.

    3. 숫자로 시작할 수 없다.   (top10은 문자로 시작하기 때문에 가능하지만, 7up은 숫자로 시작하기 때문에 사용할 수 없다.)

    4. 특수문자는 '_'와 '$'만 사용할 수 있다.   ($harp은 가능하지만, S#arp은 사용할 수 없다.)

       

    * 식별자 생성시 권장 규칙

    1. 클래스의 이름의 첫 글자는 항상 대문자로 한다.

    2. 변수와 메소드의 이름의 첫 글자는 항상 소문자로 한다.   (예: totalMoney)

    3. 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.   (예: StringBuffer)

    4. 상수의 이름은 모두 대문자로 하며, 여러 단어로 이루어진 경우 '_'로 구분한다 .   (예: PI, MAX_NUMBER)

    5. 용도를 알기 쉽게 의미있는 이름으로 하는 것이 좋다.   (예: 현재위치 - curPos, 마지막 위치 - lastPos)