JAVA/변수

03. 변수

햄스타69 2021. 8. 10. 20:14

목차

    왜 변수를 사용하는가?

    컴퓨터 메모리(Ram)는 값을 저장할 수 있는 수많은 번지(주소)들로 구성되어있다.

    그런데 메모리의 어디에 저장하고, 어떤 방식으로 저장할지 정해놓지 않으면 프로그램 개발이 무척 어렵게 된다. 이를 해결하기위해 변수를 사용한다.

     

    변수란?

    값을 저장 할 수 있는 메모리의 특정 번지에 이름을 붙이는 것이다.

     

    변수의 특징

    1) 메모리에 어디에 저장하고, 어떤 방식으로 저장할지는 프로그래밍 언어와 운영체제가 정한다.

    자바의 경우는 JVM이 하는일이다.

    2) 자바의 변수는 다양한 타입의 값을 저장 할 수 없다. (정수타입변수에는 정수값만 저장가능함)

    3) 하나의 변수에 동시에 두가지 값을 저장할 수 없다. (하나의 값만 저장할 수 있다)

    4) 변수가 어떤 값을 저장하고 있는지 쉽게 알 수 있도록 의미 있는 이름을 지어주는 것이 좋다.

    5) 한글도 변수 이름으로 사용은 가능하나 사용하지 않는편이 좋다.

     

    변수 선언 

    변수를 사용하기 위해서는 변수 선언을 해줘야한다.

    변수 선언은 변수에 어떤 타입의 데이터를 저장할 것인지 그리고 변수 이름이 무엇인지를 결정한다.

     

    int age;        //정수 (int)를 저장할 수 있는 age 변수 선언

    int 는 타입, age는 변수의 이름이 된다.

     

    int x, y, z;     //콤마를 이용해서 한번에 선언할 수도있다.

     

    (중요)변수이름 명명 규칙

    작성 규칙 ex
    첫 글짜는 문자이거나 '$', '_'이어야하고 숫자로 시작할 수 없습니다. (필수) 가능 : price, $price, _campany
    불가능 : 1v, @speed, $#value
    영어 대소문자를 구분합니다(필수) firstname과 firstName은 서로 다른 변수
    첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 합니다. (관례) -> 카멜 표기법 (camelCase) maxSpeed, firstName, carBodyColor
    문자 수 (길이)의 제한은 없습니다.  
    자바 예약어는 사용할 수 없습니다(필수) 하단의 설명을 참고

     

    예약어란? 

    이미 해당 프로그래밍 언어에서 의미를 갖고 사용되고 있는 단어로, 사용시 컴파일 에러 발생으로 인해 변수 이름으로 사용할 수 없습니다. 이클립스를 통해 코딩을 한다면 대부분의 예약어는 검은색이 아닌 색으로 표시된다.

    따라서 따로 외워둘 필요는 없다.

    분류 예약어
    기본타입 boolean, byte, char, short, int, long, float, double
    접근제한자 private, protected, public
    클래스와 관련된 것 class, abstract, interface, extends, implements, enum
    객체와 관련된 것  new, instanceof, this, super, null
    메소드와 관련된 것 void, return 
    제어문과 관련된 것 if, else, switch, case, default, for, do, while, break, continue
    논리값 true, false
    예외 처리와 관련된 것 try, catch, finally, throw, throws
    기타 package, import, synchronized, final, static

    값 저장

    변수에 값을 저장할 때에는 대입 연산자(=)를 사용합니다. 수학에서 등호는 같다는 의미지만 자바에서는

    오른쪽 값을 왼쪽의 변수에 저장한다는 의미를 갖는다.

    변수에 값이 저장되지 않으면 변수가 생성되지 않는다. 선언과 생성은 다른 이야기이다.

    변수에 최초로 값이 저장 될 때 변수가 생성된다. 이것을 변수 초기화 라고 하고 이때 사용된 값을 초기값이라고 한다.

    변수가 초기화 되면 메모리 번지 정보를 갖게 되고, 해당 메모리 번지에 값이 저장됩니다. 

     

    int score;       //변수선언

    score = 90;    //값 저장

     

    int score = 90;   //변수 선언과 동시에 초기화도 가능

     

    잘못된 코딩 예

    int value;                     // 선언 후 초기화를 하지 않음

    int result = value +10;    // 따라서 result에서 불러온 value라는 변수는 없으므로 컴파일 에러 발생

     

    변수 사용 범위

    변수는 블록 내 어디에서든 선언할 수 있지만 자신이 선언된 위치에서 자신이 속한 블록 내부까지만 사용이 가능하고 밖에서는 사용할 수 없다. 메소드 실행이 끝나면 메모리에서 자동으로 없어지기 때문.

    이를 로컬(local variable)변수 또는 지역 변수라고 부릅니다. 

     

    변수 선언시 주의사항

    1) 변수가 어떤 범위에서 사용될 것인지를 생각하고, 선언 위치를 결정해야함

    2) 메소드 블록 전체에서 사용하고 싶다면 메소드 블록 첫머리에 선언

    3) 특정 블록 내부에서만 사용된다면 해당 블록 내에 선언

     

    'JAVA > 변수' 카테고리의 다른 글

    07. 연산자  (0) 2021.08.18
    06. 변수와 시스템 입출력  (0) 2021.08.13
    05. 변수의 타입 변환  (0) 2021.08.12
    04. 기본 타입  (0) 2021.08.10