본문 바로가기
Programming/JAVA 기초

[JAVA 기초] - 변수 - 변수의 선언, 사용과 명명규칙!

by 두치 Duchi 2020. 3. 19.

 자바의 변수

 

변수는 저장할 수 있는 메모리 공간을 의미합니다.

 

 

 변수의 선언

 

변수를 생성하는 것변수의 선언이라고 합니다.

 

 선언 방법

 

자료형 변수이름;

  int data;

 

정말 간단하죠?

이러면 메모리에 data라는 이름의 영역이 하나 생기게 되는 겁니다.

변수의 이름은 마음대로 정할 수 있는데요, 하지만 몇 가지 규칙약속이 있습니다.

 

 

 규칙 

 반드시 지켜야 함 - 컴파일 시 에러가 발생

- 하나 이상의 글자로 이루어져야 함

    int; 안됨

- 첫 번째 글자는 문자 거나 '_',  '$' 이어야 함.

    int 1data; int @data; 안됨

    ( 즉 문자, _ $ 이외의 숫자, 다른 특수문자 등은 쓸 수 없음 )

- 길이는 제한이 없음

-자바의 키워드, 상수값을 사용하는 단어는 사용이 불가능

    ( 이클립스에서 보라색으로 표현되는 단어들 )

    int class; int public;                    int true; int false; int null;

//변수이름이 없는경우
  int;

  // 변수이름의 첫번째 글자가 숫자, 특수문자인 경우
  int 1data;
  int @data;

  // 변수이름이 키워드인 경우
  int class;
  int public;

  // 변수이름이 상수값인 경우
  int true;
  int false;
  int null;

모두 컴파일 에러가 발생함 진짜인지 궁금하면 복사해서 이클립스로 가져가 보자.

 

 약속

개발자들 사이에서 정한 약속 - 컴파일 시 오류가 발생하는 것은 아님

-첫 번째 문자가 소문자명사로 정함

    int Data; 권장하지 않음

    int studying; 권장하지 않음

-뜻이 있는 단어를 사용한다-- 이 변수가 무엇인지 알아볼 수 있도록.

    int sdffwdf; 권장하지 않음

-여러 단어로 구성된 이름의 경우 두 번째 단어의 첫 글자는 대문자로 표기함

    int enginedata; 권장하지 않음

-_는 사용하지 않는다.

    int engine_data; 권장하지 않음

// 변수이름의 첫 글자가 대문자인 경우
  int Data;

  // 변수이름이 명사가 아닌경우
  int studying;

  // 변수이름의 뜻이 없는경우
  int sdffwdf;

  // 두개 이상의 단어를 사용할때
  int enginedata;

  // 변수 이름에 _를사용한 경우
  int engine_data;

컴파일 에러는 나지 않는다.

 


정리하자면,

엔진 마력의 값을 저장할 공간을 만들고 싶다고 쳐보자

뜻이 있는 단어로 하랬으니까 engine horsepower 

띄어쓰기는 없다고 했으니까 enginehorsepower 

가독성이 너무 떨어지므로 engine_horsepower

_는 쓰지 말라고 했으니까 engineHorsepower

int  engineHorsepower;

 

engineHorsepower 이런 식으로 표기하는 것을 카멜 표기법이라고 합니다. 

낙타 혹처럼 튀어나와 있다고 해서 카멜 표기법이라고 불리는 듯합니다.

 

 

 변수의 사용

 

저장공간을 열심히 만들었으니 사용을 해봐야겠죠?

 

선언된변수명 = 값;

이렇게 값을 대입해서 사용한답니다.

 

int data;

data = 10;

이렇게 사용할 수도 있지만, 한 번에 처리하고 싶을 땐

int data = 10;

이렇게 한 번에 적을 수 있습니다!

int data;
  data = 10;

  int data1 = 10;

  // 변수에는 변수도 넣을 수 있다.
  int data2 = data + data2;

  int data3 = data2 + 10;


  //선언시 한방에 여러가지 선언 가능
  int age = 20, data4 = 0, data5 = 10;

댓글