본문 바로가기

프로그래밍/자바의 정석

#5. 변수

#5. 변수

1. 변수란?

- 하나의 값을 저장할 수 있는 메모리 공간!

-  메모리 : RAM

-  하나의 메모리를 1byte로 하여 01234,...... 쭉 나열함. 이 번호들이 메모리 주소.

-  메모리 주소 대신 이름을 부여하여 찾기 쉽게 함.

2. 변수의 선언

1) 변수의 선언 이유

- 값을 저장할 공간을 마련하기 위해서

2) 변수의 선언 방법

- 변수타입 변수이름 ; <- 자바 문장이기 때문에 세미클론(;) 꼭 넣기

ex) 나이를 저장하기 위해 age로 변수를 선언하려고 한다면

    ____ age ;   // 정수 타입의 변수 age를 선언

     변수 타입은 여러가지가 있음 (int, double 등)

         age [????]

3. 변수에 값 저장하기

1) 변수에 값 저장하기  ( '='는 등호가 아니라 대입)

  int age ;   // 정수 int 타입의 변수 age를 선언

  age = 25;  // 변수 age에 25를 저장

            ㄴ> 대입연산자

   age [???] ==> age[25]

  int age = 25; // 위의 두 줄을 한 줄로

2) 변수의 초기화 - 변수에 처음으로 값을 저장하는 것

- 모든 변수는 사용하기전에 적절한 값으로 초기화 하는 것이 좋음

  int x = 0;   // 변수 x를 선언 후, 0으로 초기화

  int y = 5;   // 변수 y를 선언 후, 5로 초기화

  int x = 0, y = 5;  // 위의 두 줄을 한 줄로

 

* 변수의 종류

- 클래스 변수

- 인스턴스 변수

- 지역 변수  : 0으로 자동 초기화 되지 않기 때문에 꼭 초기화 해야함. 안하면 컴파일 때 에러 발생함.

 

4. 변수의 값 읽어오기

1) 변수의 값이 필요한 곳에 변수의 이름을 적는다.

   int year = 0, age = 14; 

   -> year [0],  age [14]

   int year = age + 2000;

   -> year = 14 + 2000; 

       year = 2014;

   -> year [2014], age[14]

 

   int year = 0, age = 14;

   age = age + 1;

   -> age = 14 + 1;   // 변수의 값을 1 증가시키는 방법

   -> age = 15;

* 변수에 저장된 값을 화면에 출력하게 하는 법

      System.out.println(age);

      -> System.out.println(15);

 

2) 이클립스에서 실습하기

- System.out.println();  // 기본

- "6+3" => "6+3" // 문자열 - "는 문자열의 변수

- 6+3 => 9  // 덧셈

- 6-3 => 3  //뺄셈

- 6*3 = 18 // 곱셈
- 6/3 = 2  // 나눗셈

* 수정이 간단한 선언 방법

- int x = 6, y = 3

- (x+y).. 등

 

5. 두 변수의 값 교환하기

- int x = 10, y = 20;

  x = y;  // y의 값을 x에 저장

  y = x;  // x의 값을 y에 저장

=> x에 y의 값 20이 저장, y에는 현재 x의 값 20이 입력,

     x =20, y= 20  의 결과

 

- tmp 변수를 이용 (컵이라고 생각하면 됨)

  int x =10, y = 20;

  int tmp; // 빈 컵

  tmp = x;  // x의 값을 tmp에 저장

  x = y;  //x의 값을 y에 저장

  y = tmp;  //tmp의 값을 y에 저장

=> x의 값 10을 tmp에 저장, x에 y의 값 20을 저장, y에 tmp의 값 10을 저장

     x = 20, y = 10, tmp = 0

 

* 출력

- System.out.println("x="+x); <- "x=" 문자열 추가, +는 숫자 앞에 글자를 붙일때도 사용

- System.out.println("y="+y); <- 위와 동일

 

6. 명명규칙 (Naming convention)

1) 대소문자가 구분되며 길이에 제한이 없다.

- True와 true는 서로 다른 것으로 간주된다.

2) 예약어를 사용해서는 안된다.

      ㄴ> int와 같은 키워드

- true는 예약어라 사용할 수 없지만, True는 가능하다.

3) 숫자로 시작해서는 안된다.

- top10은 허용하지만, 7up은 허용되지 않는다.

4) 특수문자는 '_'와 '$'만을 허용한다.

- 자바는 유니코드 지원, 특수기호는 위의 2개만 허용됨.

- $harp은 허용되지만 S#arp은 허용되지 않는다. 

* 명명 규칙의 권장사항

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

- 변수와 메서드 이름의 첫 글자는 항상 소문자로 한다.

2) 여러 단어 이름은 단어의 첫 글자를 대문자로 한다.

- lastIndexOf, String Buffer

 ㄴ앞의 l이 소문자 = 클래스 이름이 아닌 것을 확인 가능 

    그 외의 단어 첫글자가 대문자 = 클래스

3) 상수의 이름은 대문자로 한다. 단어는 '_'로 구분한다.

     ㄴ한번 값을 저장하면 변경할 수 없는 변수

- 모두 대문자로 작성

- PI, MAX_NUMBER

             ㄴ 단어와 단어 사이는 '_'로 표시