본문 바로가기
Java

[Java] 변수? 정의와 변수사용목적, 변수의 선언과 대입, 명명규칙까지

by 나는 개발자 2020. 12. 17.
TIL: 스스로 이해한 것을 바탕으로 정리하였기에 오류가 있을 수 있습니다.

 

변수

변 (變 변할 변) + 수 (모든 데이터) : 변할 수 있는 모든 데이터

메모리(RAM)에 값을 기록하기 위한 공간(Box)라고 생각하면 쉽다.

 

명시적으로 입력하는 값이 아닌 사용자가 입력하는 값을 기록할 때


프로그램 실행 시 사용할 값(Data)이 있다면 그 값은 먼저 메모리에 기록되어야 하는데,
메모리 공간에 값을 기록하려면 바로 가지고 올 수 없고 변수부터 만들어야 한다.(박스 같은 공간)
하나의 박스에 오로지 하나의 값만 입력할 수있다.

 

  학습목표
  1. 변수란?
  2. 변수를 왜 써야 되는지
  3. 변수를 어떻게 쓰면 되는지
  4. 변수명은 어떻게 지으면 되는지 (naming rules)

 

 

변수 사용 목적

아래의 코드를 보고 비교를 해보자!

변수 사용 전

변수 사용 전의 코드 모습이다. 결과물은 잘 출력되나, 무슨 의미인지 파악하기 어렵다. (문제점 1)

 

100의 포인트에 10의 보너스를 10명에게 준다. 세금은 10이고, 그것을 다시 사람 수로 나눈 것이다.

자, 이제 변수를 선언해보자.

[표현법 ] 자료형 변수명 ;

비교했을 때 드러나는 변수 사용 목적

- 우선적으로 값에 의미를 부여해놓고자 하는 목적으로 사용 (가독성이 좋아진다)

- 한번 값을 저장해 두고 계속적으로 사용할 목적으로 사용

- 유지보수에 용이할 목적으로 사용 (ex. 포인트가 70으로 바뀐다면 int point = 70; 값만 바꿔주면 된다.)

 

 

변수의 선언

메모리 공간에 데이터를 저장할 수 있는 공간을 할당하는 것 

(기록할 값을 위한 변수를 메모리 공간에 확보해 놓는 과정 == 변수(박스) 만드는 과정)
[표현법] 자료형 변수명; (값은 아직 없고 박스만 만들어놓은 상태) 

 
 자료형: 어떤 값을 담아낼지, 어느 정도의 크기의 값을 담아낼지에 대한 변수의 크기 및 모양을 정하는 부분 ex. int, double, String
 
 * 주의사항
 - 변수명은 반드시 소문자로 시작 (낙타 표기법)
 - 해당 영역({})에 선언한 변수는 해당 영역에서만 쓸 수 있음 (다른 메소드에서는 쓸 수 없음) : 지역변수
 - 해당 영역({})에 동일한 변수명으로 선언 불가 (중복 오류: duplicate)

 


 
 자료형 종류

 논리(참, 거짓)        - boolean
 문자 - 문자           - char
        - 문자열        - String
 숫자
        - 정수형        - byte
                           - short
                           - int *
                           - long

        - 실수형        - float
                           - double * (float보다 더 정확한 값을 보관할 수 있다)

 

* 논리형 변수 선언                              * 정수형 변수 선언
boolean isTrue;                                    byte  bNum; 
                                                        short sNum;
* 문자형 변수 선언                                int iNum;
char ch;                                              long lNum; 

클래스형 ---> 문자열

데이터 저장 단위
저장 공간이 제한적이기 때문에 저장 크기에 대한 기준과 cpu가 데이터를 처리할 때 일정한 기준 필요하다 

비트(bit) 
컴퓨터가 나타내는 데이터의 저장 최소 단위로서 2진수 값 하나를 저장할 수 있는 메모리 공간을 의미
8bit = 1 byte 
바이트(byte) 
데이터 처리 또는 문자의 최소 단위로서 8개의 비트가 모여 하나의 바이트가 구성된다

각 자료형마다 메모리 크기가 다르므로 적당한 자료형을 선택하는 것이 중요.

 

 

변수에 값 대입하기 (담기)

 [표현법] 변수명 = 값;  

 

// 1. 논리형
boolean isTrue;     // 1byte

// 2. 숫자형
// 2_1. 정수형  
byte bNum;    
short sNum;   
int iNum;                    -> 정수형들 중 가장 대표적인 자료형 (기본형) -약 21억 ~ 약 21억
long lNum;     

// 2_2. 실수형
float fNum;      
double dNum;            -> 실수형들 중 가장 대표적인 자료형(기본형) float보다 더정확한 값을 담을 수 있음

// 3. 문자형
char ch;   

 

// 4. 문자열  (참조자료형) 
String str;

 

     
isTrue = true;
bNum = 1;
sNum = 2;
iNum = 4;
lNum = 8L;              -> long형 변수에 값을 담을 때는 뒤에 L을 붙여준다. (권장)
fNum = 4.0f;            -> float 뒤에는 f를 붙여야 한다. (반드시)
dNum = 8.0;
ch = 'A';
ch = '꽃';                중복되는 경우, 뒤에 ch가 덮어 씌운다. 'A'는 사라짐
str = "ABC"; 

 {

System.out.println("isTrue 의 값 : " + isTrue);
}

> isTrue 의 값 : true        라고 출력된다.

 

 

 

 

변수 선언과 동시에 값 대입하기 (초기화)

[표현법] 자료형 변수명 = 값;

 

기본자료형

//1. 논리형
boolean isTrue = false;

//2_1. 숫자형 (정수형)
byte bNum = 1;
short sNum = 2;
int iNum = 4;
long lNum = 8L;

//2_2. 숫자형 (실수형)
float fNum = 4.0f;
double dNum = 8.0;

//3. 문자(한글자)형
char ch = '가';

//참조자료형
//4. 문자열
String str = "I오전반";

 

//번외
//엄청 큰 값을 담아야만 할 때 가동성 좋게 '_' 언더바를 이용할 수 있다.
//단, 숫자값만이 담긴다.
int etc = 999_999_999;

 

 

 

변수 명명 규칙

1) 변수명 중복 불가

2) 대소문자는 구분된다 

3) 예약어(이미 자바에서 사용되고 있는 키워드들) 사용 불가

4) 숫자는 사용가능하나, 시작하는 것은 불가

5) 특수문자는 _와 $만 사용가능하며, 그 외엔 사용 불가

6) 낙타표기법 권장

-> 2번이 권장사항

 

7) 한글 사용 가능하나 영문 권장 (한글을 사용하지않는 환경에선 오류가 발생하기 때문)

 

 

 

 

 

 

 **정리**
 변수 : 값(리터럴)을 기록하는 공간
 
 값(리터럴) : 프로그램상에 필요한 명시적인 값/ 또는 사용자가 마우스 또는 키보드로 입력한 값

댓글