본문 바로가기
Back-end

변수

by 신재권 2021. 2. 26.

변수(Variable)는 프로그램의 처리 과정에서 데이터를 담아둘 수 있는 메모리 공간을 의미한다. 하나의 변수에는 하나의 값만 저장할 수 있고, 이 값을 변경할 수 있기 때문에 변할수 있는 값, 즉 변수(Variable)이라 부른다.

 

변수의 선언 및 초기화

변수를 사용하려면 먼저 선언을 해야한다. 변수의 선언방식은 다음과 같다.

int a;

int a = 1;

 

int : 데이터 타입  : 변수에 기억시킬 데이터의 형태를 의미

a : 변수명  : 기억장소 주소를 대신하여 사용할 이름

1 : 초기 값  : 변수를 선언한 후 기억시킬 값

 

변수의 이름을 명명할 때는 몇가지의 규칙이 있다.

1. 변수의 이름은 숫자로 시작할 수 없고, 특수문자는 $와 _ 만 사용이 가능하다.

2. 대소문자를 구분하기 때문에, 대소문자가 다른 변수는 별개의 변수

3. 자바의 예약어를 변수명으로 사용 불가능 

ex) boolean, break, byte 등

 

변수명을 짓는 방법에는 헝가리안, 카멜,  파스칼 표기법 등이 있다.

헝가리한 표기법 : 변수에 자료형을 구분지을 수 있도록 접두사를 달아서 표기하는 방법

int iNum;

float fEpsilon;

bool bPoket;

 

카멜 표기법 : 두 개이상의 단어가 사용된 경우 새로운 단어가 나타나면 대문자를 사용하여 표기하는 방법이고, 대체로 함수명과 변수명을 지을 때 사용 

int myAge, int newPeople;

 

파스칼 표기법 : 모든 단어의 첫글자를 대문자로 표기하는 방법이며 클래스 명을 지을 때 사용

class GameEngine{};

 

권장사항

변수와 메서드의 이름은 소문자로 시작하고, 클래스의 첫 글자는 대문자로 시작한다.

상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어질 경우 _로 구분한다.

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

변수의 이름은 의미 있는 이름으로 하는 것이 좋다.

 


데이터 타입 

데이터에는 정수, 실수, 문자, 논리 (참 또는 거짓) 등이 있는데 각각의 데이터를 담을 수 있는 변수의 종류다 다르다. 그래서 데이터 타입으로 어떤 데이터를 담는 변수인지 표시한다. 데이터 타입에는 정수형, 실수형, 문자형, 논리형이 있다.

 

정수형 데이터 타입 

byte - 1바이트, 8비트, -128~127

short - 2바이트, 16비트, =32,768~32,767

int - 4바이트, 32비트, -2,147,483,648 ~ 2,147,483,647

long - 8바이트, 64비트 , -2^63 ~ -2^63 -1

 

실수형 데이터 타입

float - 4바이트, 32비트, 1.4x10^-45 ~ 3.4x10^38

double - 8바이트, 64비트, 4.9x10^-324 ~ 1.8x10^308

 

실수형 데이터를 표현할 때는 데이터의 범위보다 중요한 것이 정밀도 이다. 컴퓨터가 실수를 처리할 때는 기본적으로 오차가 존재하는데 데이터를 표현하는 비트의 수에 따라 오차는 줄어들게 된다.

float의 오차범위는 소수 이하 6자리

double의 오차범위는 소수 이하 15자리

 

문자형 데이터 타입 

char , 2바이트 , 16비트 , 0~2^16 -1   유니코드(0~ 65535)

자바에서는 유니코드(2byte)를 사용하므로 char 자료형은 2바이트를 사용한다. 또한 음의 값을 표현할 필요가 없어서 저장 가능한 값의 범위는 0부터 시작된다. char형 변수에 저장되는 문자는 컴퓨터가 인식할 수 있도록 숫자의 형태로 저장이 된다.

문자를 변수에 대입할 대는 작은 따옴표 (' ')를 사용한다.

 

논리형 데이터 타입

논리형 데이터 타입에는 true와 false를 저장하는 자료형인 boolean이 있다. 즉 0과 1로만 표현이 가능하기 때문에 실제로 필요한 메모리는 1bit이지만 자바에서 데이터를 다루는 최소 크기는 byte이기 때문에 실제로는 1byte의 크기를 가지고 있다. 참고로 자바에서는 대소문자가 구별되기 때문에 true와 True는 다르게 취급되므로, True를 대입할 경우 오류가 발생한다.

 


형변환

형변환이란 말 그대로 변수나 데이터 다입을 다른 타입으로 바꾸는 것을 의미한다.

형변환에는 자동 형변환과 명시적 형변환이 있다. 

자동 형변환은 프로그램 작성자가 별도의 작업을 하지 않아도 자바가 알아서 알맞은 타입으로 변환해주는 형변환이고, 명시적 형변환은 프로그래머가 변수의 자료형을 강제로 바꾸는 것을 말한다.

 

다음은 자동 형변환을 하는 프로그램이다.

public class data Type{


	public static void main(String[] args){
    
    byte a = 127;		//byte가 가질수 있는 최대 값
    int b = a; 			//자동 형변환 byte->int
    System.out.println(b);
    
    float c= b; 	//자동 형변환 int ->float
    System.out.println(c);
    }

}
========================실행결과===========================
127
127.0

 

명시적 형변환은 프로그래머가 데이터 형을 강제로 변환한다. 명시적 형변환은 다음의 형식으로 선언한다.

(변환하고자 하는 타입) 변수명;

 

다음은 명시적 형변환을 수행하는 프로그램이다.

public class data Type{


	public static void main(String[] args){
    	int a= 263;
        System.out.println(a);
        byte b= (byte)a;	//명시적 형변환
        System.out.println(b);
   
    }

}
========================실행결과===========================
263
7

상수의 선언

상수는 프로그램 실행 중에 변경할 수 없는 고정된 값이다. 상수는 프로그램 언어에 정해져 있지만, 사용자가 직접 상수를 선언한다. 상수를 선언하는 방법은 다음과 같다.

final 데이터타입 상수명 = 값;

 

다음은 상수를 선언한 후 값을 변경하면 어떻게 되는지 보여주는 프로그램이다.

public class data Type{


	public static void main(String[] args){
    	int a= 3;
        a = 4;
        
        final double PI = 3.14;
        PI = 3.15;  	//에러 발생
   	
    }

}
========================실행결과===========================

 

변수 a는 3에서 4로 값을 변경할 수 있지만 final이 붙은 'PI'는 상수이므로 값을 변경하면 에러가 발생한다.

 

'Back-end' 카테고리의 다른 글

예외처리(5)  (0) 2021.06.23
예외처리(4)  (0) 2021.06.22
예외처리(3)  (0) 2021.06.21
예외처리(2)  (0) 2021.06.21
예외처리(1)  (0) 2021.06.21