본문으로 바로가기

변수

category JAVA 2019. 11. 30. 21:04

변수


  • 변수란? 변하는 값을 저장할 수 있는 메모리의 공간을 의미한다. 
  • 변수의 크기는 값의 타입에 따라 결정된다.
  • 하나의 변수에는 한번에 하나의 값만 담을 수 있다.
    여러개의 값을 담을 수 없다.(저장할 수 없다.)

 

변수의 선언


JAVA에서는 변수 타입과 변수 이름으로 구성된다.

// 변수타입 변수명;
//byte 타입에 age라는 이름으로 선언하기
byte age;

자바 가상 머신(JVM)은 코드를 읽으면서 

1. byte 타입을 인지하고,

2. 이에 적합한 공간을 메모리에 할당

한다. 할당된 메모리는 특정 주소 값을 갖게 되는데, 프로그래밍을 하면서 주소값을 이용하는 것은 메우번거롭기 때문에 주소를 나타내는 변수명(age)이용하게 된다.

 

변수를 선언할때 리터럴(literal)을 이용해 값을 할당할 수 있다.

리터럴이란 변수에 할당되기 전의 순수한 값을 말한다.

//변수타입 변수명=리터럴;
//byte 타입의 변수 age에 10을 할당하기
byte age=10;

 

동일한 타입의 변수를 선언할때는 타입을 한번만 명시하고 뒤에 콤마( , )를 이용해 여러개의 변수를 선언할 수 있다.

//int 타입에 변수 number, count 선언하기
int numbr, count;
//char 타입의 변수 c1, c2에 각각 a,b라는 값을 할당하기
char c1='a', c2='b';

 

타입이 다를 경우에는 한 줄에 여러개의 변수를 함께 선언할 수 없다.

int a, double b; //불가능

 

그런데 변수를 선언하고 값을 넣지 않으면 어떻게 될까?

 

자바 스크립트에서는 변수를 선언하고 값을 넣지 않으면 undefined가 출력되긴하지만 변수는 생성되어 콘솔창에 출력되었다.

 

그러나 java의 경우 변수를 선언하고 값을 넣지 않으면 변수 자체가 생성되지 않아 콘솔창에 아무것도 출력되지 않는다

예시로 아래의 두 변수를 이클립스에서 디버깅 해보자

//int 타입의 num2 변수 선언
int num2;

//String 타입의 name2 변수 선언
String name2;

 

변수만 먼저 선언해서 빈 공간을 두고 나중에 값을 채워 놓고 싶은 경우에는 어떻게 해야할까?

 

그런 경우에는 data type 별로 기본값을 넣어 주면된다.

data type 별 기본값은 아래와 같다.

//int type의 데이터의 빈공간 만들기
int num4=0;

//참조형 데이터의 빈공간 만들기
String name4=null;

//boolean 타입의 데이터 빈공간 만들기
boolean isRun=false;

 

field에서는 기본값을 넣어주지 않더라도 field 생성시에 자동으로 기본값이 생성되니 참고하자!

 

데이터별 기본값을 사용해 빈공간을 만들어 주었다!

이제 빈공간에 필요한 값을 넣어보자~

 

우리는 이미 변수 생성시 data type을 선언해주었기 때문에 다시 data type을 선언하지 않아도 된다.

// name4 변수에 "원숭이" 값을 넣어주기
name4="원숭이";

 

 

변수 명명 규칙(naming convention)


명명 규칙 필수 사항

  • 대.소문자를 구분하며 길이에는 제한이 없다.
  • 숫자로는 시작할 수 없다.
  • 특수 문자로는 _, &만을 허용한다.
  • 예약어는 사용할 수 없다.

 

권장 사항

  • 가급적 의미 있는 단어를 사용해서 변수의 용도를 파악하기 쉽게한다.
  • 클래스, 인터페이스, 이넘(Enum), 애너테이션의 이름은 대문자로 시작한다.
  • 변수, 메서드의 이름은 소문자로 시작한다.
  • 두 개 이상의 단어를 붙여서 사용할때는 Camel Case 표현법을 사용한다.
  • 상수는 모두 대문자를 사용하고 단어의 연결에는 _ 를 사용한다.